设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间15 现在时间15 缓存数据 当我买得起十几块钱一个的冰淇淋的时候,我已经不再天天想吃了。当我可以随便玩电脑而没人管的时候,我已经懒得打开电脑了。当我优秀得足够让你不会离我而去时,我已经不再非你不可了。

当我买得起十几块钱一个的冰淇淋的时候,我已经不再天天想吃了。当我可以随便玩电脑而没人管的时候,我已经懒得打开电脑了。当我优秀得足够让你不会离我而去时,我已经不再非你不可了。 -- 有没有人告诉你

查看: 1573|回复: 3

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

[复制链接]

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:17
  • 打卡月天数:0
  • 打卡总奖励:331
  • 最近打卡:2024-09-14 18:27:41
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
31
主题
25
精华
0
金钱
431
积分
70
注册时间
2023-8-13
最后登录
2025-3-14

发表于 2024-7-4 14:00:51 | 显示全部楼层 |阅读模式
目录


  • 一、需求
  • 二、备份命令准备

    • 1)备份命令
    • 2)让备份命令定时自动执行
    • 3)linux服务器邮件发送配置
    • 4)备份成功失败发送邮件


一、需求

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

二、备份命令准备


1)备份命令

创建一个 gitlab_auto_backup.sh文件,文件内容
  1. #!/bin/bash
  2. # 进入GitLab容器并执行备份 --gitlab为docker名称
  3. docker exec -t gitlab gitlab-backup create
  4. # 查找并删除1天前的备份文件 /home/gitlab/opt/backups/ 为docker挂载data的目录
  5. find /home/gitlab/opt/backups/ -type f -mtime +1 -name "*.tar" -exec rm -rf {} \;
复制代码
把gitlab_auto_backup.sh文件放到服务器上,这里放到目录  /home/gitlab/gitlab_auto_backup.sh
给权限
  1. chmod +x /home/gitlab/gitlab_auto_backup.sh
复制代码
2)让备份命令定时自动执行

使用linux的cron来定时执行上面创建的命令脚本文件,vi /etc/crontab 打开 crontab文件
每天零晨2点执行
1.png


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

配置发送邮件服务
安装mailx sendmail,如果已安装会提示已经安装,没安装会自动安装
  1. yum install -y mailx sendmail
复制代码
查看Active的状态
  1. systemctl status sendmail
复制代码
如果active(running)正常,如果为dead则需要启动服务,启动命令
  1. systemctl start sendmail
复制代码
配置服务 /etc/mail.rc,以163邮箱为例
  1. #打开配置文件
  2. vi /etc/mail.rc
复制代码
编辑配置文件增加配置
  1. set from=xxxx@163.com #邮箱
  2. set smtp=smtp.163.com #smtp地址
  3. set smtp-auth-user=xxxx@163.com
  4. set smtp-auth-password=授权码 #不是邮件的密码,是申请smpt发送邮件的授权码
  5. set smtp-auth=login
复制代码
邮件发送测试
1、直接发送内容
发送内容:test content
标题:test title
收件人:123456@qq.com
  1. echo "test content" | mail -s "test title" 123456@qq.com
复制代码
2.png

2、使用文件内容作为邮件内容发送
把 /tmp/test.txt的内容作为邮件内容发送
mail -s "test title" 123456@qq.com < /tmp/test.txt

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

修改备份命令,增加发送邮件。gitlab_auto_backup.sh完整内容替换为:
  1. #!/bin/bash
  2. # 进入GitLab容器并执行备份
  3. docker exec -t gitlab gitlab-backup create
  4. # $?符号显示上一条命令的返回值,如果为0则代表执行成功,其他表示失败,注间中括号前后有一个空格
  5. if [ $? -eq 0 ];then
  6.    echo "gitlab备份成功" | mail -s "gitlab备份成功" 123456@qq.com
  7. else
  8.    echo "gitlab备份失败" | mail -s "gitlab备份失败" 123456@qq.com
  9. fi
  10. # 查找并删除1天前的备份文件
  11. find /home/gitlab/opt/backups/ -type f -mtime +1 -name "*.tar" -exec rm -rf {} \;
复制代码
手动执行gitlab_auto_backup.sh文件测试效果
  1. #执行备份命令
  2. /home/gitlab/gitlab_auto_backup.sh
复制代码
3.png

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-27
最后登录
2022-12-27

发表于 2024-8-3 03:33:27 | 显示全部楼层
感谢楼主,顶。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
18
积分
16
注册时间
2022-12-25
最后登录
2022-12-25

发表于 2024-8-22 21:30:35 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
12
积分
4
注册时间
2025-1-17
最后登录
2025-1-17

发表于 2025-3-16 08:14:13 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
4楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表