目录
- 一、需求
- 二、备份命令准备
- 1)备份命令
- 2)让备份命令定时自动执行
- 3)linux服务器邮件发送配置
- 4)备份成功失败发送邮件
一、需求
为预防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则需要启动服务,启动命令 配置服务 /etc/mail.rc,以163邮箱为例 编辑配置文件增加配置 - 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自动定时备份内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |