gitlab自动定时备份文件备份失败发送邮件功能实现

 更新时间:2024年06月17日 09:10:29   作者:包子wxl  
为预防gitlab出现故障,每天定时备份,备份完成后把之前的备份文件删除,备份成功或失败的时候自动发送邮件提醒,这里的gitlab为docker部署,对gitlab自动定时备份文件相关操作感兴趣的朋友一起看看吧
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

一、需求

为预防gitlab出现故障,每天定时备份,备份完成后把之前的备份文件删除,备份成功或失败的时候自动发送邮件提醒,这里的gitlab为docker部署。

二、备份命令准备

1)备份命令

 创建一个 gitlab_auto_backup.sh文件,文件内容

#!/bin/bash
# 进入GitLab容器并执行备份 --gitlab为docker名称
docker exec -t gitlab gitlab-backup create
# 查找并删除1天前的备份文件 /home/gitlab/opt/backups/ 为docker挂载data的目录
find /home/gitlab/opt/backups/ -type f -mtime +1 -name "*.tar" -exec rm -rf {} \;

把gitlab_auto_backup.sh文件放到服务器上,这里放到目录  /home/gitlab/gitlab_auto_backup.sh

给权限

chmod +x /home/gitlab/gitlab_auto_backup.sh

2)让备份命令定时自动执行

使用linux的cron来定时执行上面创建的命令脚本文件,vi /etc/crontab 打开 crontab文件

每天零晨2点执行

3)linux服务器邮件发送配置

配置发送邮件服务

安装mailx sendmail,如果已安装会提示已经安装,没安装会自动安装

yum install -y mailx sendmail

查看Active的状态

systemctl status sendmail

如果active(running)正常,如果为dead则需要启动服务,启动命令

systemctl start sendmail

配置服务 /etc/mail.rc,以163邮箱为例

#打开配置文件
vi /etc/mail.rc

编辑配置文件增加配置

set from=xxxx@163.com #邮箱
set smtp=smtp.163.com #smtp地址
set smtp-auth-user=xxxx@163.com
set smtp-auth-password=授权码 #不是邮件的密码,是申请smpt发送邮件的授权码
set smtp-auth=login

邮件发送测试

1、直接发送内容

发送内容:test content

标题:test title

收件人:123456@qq.com

echo "test content" | mail -s "test title" 123456@qq.com

 2、使用文件内容作为邮件内容发送

把 /tmp/test.txt的内容作为邮件内容发送

mail -s "test title" 123456@qq.com < /tmp/test.txt

 4)备份成功失败发送邮件

修改备份命令,增加发送邮件。gitlab_auto_backup.sh完整内容替换为:

#!/bin/bash
# 进入GitLab容器并执行备份
docker exec -t gitlab gitlab-backup create
# $?符号显示上一条命令的返回值,如果为0则代表执行成功,其他表示失败,注间中括号前后有一个空格
if [ $? -eq 0 ];then
   echo "gitlab备份成功" | mail -s "gitlab备份成功" 123456@qq.com
else
   echo "gitlab备份失败" | mail -s "gitlab备份失败" 123456@qq.com
fi
# 查找并删除1天前的备份文件
find /home/gitlab/opt/backups/ -type f -mtime +1 -name "*.tar" -exec rm -rf {} \;

手动执行gitlab_auto_backup.sh文件测试效果

#执行备份命令
/home/gitlab/gitlab_auto_backup.sh

 完成!

到此这篇关于gitlab自动定时备份文件备份失败发送邮件功能实现的文章就介绍到这了,更多相关gitlab自动定时备份内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • OpenStack?安装?Keystone的过程详解

    OpenStack?安装?Keystone的过程详解

    这篇文章主要介绍了OpenStack?安装?Keystone,本篇主要记录一下?openstack?queens?版本?keystone?组件的安装过程,本文通过图文实例相结合给大家介绍的非常详细,需要的朋友参考下吧
    2022-05-05
  • VSCode设置默认打开的浏览器的方法

    VSCode设置默认打开的浏览器的方法

    这篇文章主要介绍了VSCode设置默认打开的浏览器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 12种实现301网页重定向方法的代码实例(含Web编程语言和Web服务器)

    12种实现301网页重定向方法的代码实例(含Web编程语言和Web服务器)

    这篇文章主要介绍了11种实现301网页重定向方法的代码实例,文中包含9种编程语言和3种WEB服务器配置方法,共计12种,需要的朋友可以参考下
    2014-07-07
  • 使用Postman测试需要授权的接口问题

    使用Postman测试需要授权的接口问题

    Postman是一款免费的http模拟请求工具,常用来测试开发接口。实际场景中,很多接口是需要授权才能使用,这篇文章主要介绍了用Postman测试需要授权的接口,需要的朋友可以参考下
    2022-06-06
  • Unity开发VR项目问题总结分析

    Unity开发VR项目问题总结分析

    本篇文章主要对Unity开发VR项目会遇到的一些问题总结,针对这些问题进行分析解决,有需要的朋友可以借鉴参考下,希望对大家有所帮助
    2021-09-09
  • 详解Visual Studio使用Git忽略不想上传到远程仓库的文件

    详解Visual Studio使用Git忽略不想上传到远程仓库的文件

    这篇文章主要介绍了Visual Studio使用Git忽略不想上传到远程仓库的文件,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 使用git checkout到历史某个版本

    使用git checkout到历史某个版本

    这篇文章主要介绍了使用git checkout到历史某个版本,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • git如何合并某个分支的某次提交(cherry-pick)

    git如何合并某个分支的某次提交(cherry-pick)

    这篇文章主要介绍了git如何合并某个分支的某次提交(cherry-pick)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 编程之显示/隐式声明

    编程之显示/隐式声明

    显示声明 是程序中的一条说明语句,它列出一批变量名并指明这些变量的类型。隐式声明 指通过某种默认协定的方法将变量名与类型绑定。
    2011-01-01
  • Git?Commitizen提交规范化自动生成changelog文件

    Git?Commitizen提交规范化自动生成changelog文件

    这篇文章主要为大家介绍了Git?Commitizen提交规范化自动生成changelog文件详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论


http://www.vxiaotou.com