记录gitlab动定时备份文件备份失败发送邮件功能的实现过程

目录
文章目录隐藏
  1. 备份命令准备

最近有一个需求,为预防 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 点执行:

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

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

1) 配置发送邮件服务

安装 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

2) 邮件发送测试

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 自动定时备份内容请搜索码云笔记以前的文章。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系maynote@foxmail.com处理
码云笔记 » 记录gitlab动定时备份文件备份失败发送邮件功能的实现过程

发表回复