首页 > 其他分享 >gitlab自动定时备份文件,备份失败发送邮件

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

时间:2024-06-16 23:32:00浏览次数:18  
标签:com 备份 gitlab 备份文件 发送 backup 邮件

一、需求

为预防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 [email protected] #邮箱
set smtp=smtp.163.com #smtp地址
set [email protected]
set smtp-auth-password=授权码 #不是邮件的密码,是申请smpt发送邮件的授权码
set smtp-auth=login

邮件发送测试

1、直接发送内容

发送内容:test content

标题:test title

收件人:[email protected]

echo "test content" | mail -s "test title" [email protected]

 

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

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

mail -s "test title" [email protected] < /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备份成功" [email protected]
else
   echo "gitlab备份失败" | mail -s "gitlab备份失败" [email protected]
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

 完成!

 

标签:com,备份,gitlab,备份文件,发送,backup,邮件
From: https://www.cnblogs.com/wei325/p/18250192

相关文章

  • OCP-043之:数据库备份操作
    1RMAN备份操作1.1基本操作基本的控制和数据文件备份RMAN>CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/tmp/backup/cs_%F';newRMANconfigurationparameters:CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/tmp/bac......
  • 2024中育云备份下载专用网址
    说明Introduction如在使用过程中有任何问题,请及时与我取得联系。由于本人写的所有下载器都挂在ezy服务器上,所以说会涉及跨域访问当出现登录问题时,请确保,网址栏中应为http://...,而不是https://...在线专栏登录器http://ezy-sxz.oss-cn-hangzhou.aliyuncs.com/zxzllogin.htm......
  • Superset二次开发之基于GitLab OpenAPI 查询项目的提交记录中修改的文件
    背景:Superset二次开发,在处理版本升级的过程中,需要手动迁移代码,如何在Superset项目众多的文件中,记录修改过的文件,迁移代码时只需重点关注这些文件修改的内容即可,但是针对项目中多次的commit信息,每个commit又涉及不同的文件,如何快速梳理出这些二开工作中修改的文件,是我们......
  • ghost备份系统/恢复系统
    准备工作准备一个微PE镜像或者一个微PE启动U盘操作步骤我们这里用虚拟机(win10)进行模拟。首先进入到镜像微PE中(微PE镜像制作请参考微PE工具箱制作成ISO镜像-CSDN博客)进入微PE我们先进行微PE镜像的挂载。先右键虚拟机,点击设置点击如图下所示的位置,将微PE镜像挂载上,点击确......
  • GitLab-CI (自动化集成&部署)
    GitlabCI/CD是一款用于持续集成(CI),持续交付(CD)的工具,相似的工具有Jenkins、TravisCI、GoCD等。Gitlab的CI/CD算是比较简单的了,只需要依靠一份".gitlab-ci.yml",将该文件随代码上传,Gitlab就会自动执行相应的任务,从而实现CI/CD。gitlab-runner可实现cicd1.安装gitlab-runnerdoc......
  • 【ubuntu】记住gitlab的登录账号密码
    一、场景   当我们拉取多个项目时,每次总要输入密码,http方式的时候  二、方法gitconfig--globalcredential.helperstore然后可以手动配置账号密码配置~/.gitconfig文件[user][email protected][credential]helper=store[f......
  • mac 微信、QQ备份到外接硬盘方案(软链接)
    一、微信备份到外接硬盘mac微信备份到外接硬盘方案(软链接)要找到mac版微信的缓存文件很简单。因为它缓存的文件都保存在电脑的【~/Library/Containers/com.tencent.xinWeChat/Data/Library/ApplicationSupport/com.tencent.xinWeChat/2.0b4.0.9】这个路径中。我们只需要......
  • gitlab-runner
    9712024-06-1214:14:14dockerps9722024-06-1214:14:37cat/etc/os-release9732024-06-1214:15:32java-version9742024-06-1214:16:24git-version9752024-06-1214:16:33git--version9762024-06-1214:16:59yumremovegit977......
  • Gitlab01-安装配置
    使用yum安装并配置GitLab安装#安装依赖工具sudoyuminstall-ycurlpolicycoreutils-pythonopenssh-server#启用SSH服务sudosystemctlenablesshdsudosystemctlstartsshd#安装邮件服务sudoyuminstallpostfixsudosystemctlenablepostfixsudosystemct......
  • Gitlab02-结构简介
    gitlab组件nginx#静态web服务器,作为gitlab的proxy代理,处理所有的https静态访问请求gitlab-shell#用于处理Git命令和修改authorizedkeys列表gitlab-workhorse#轻量级反向代理服务器,处理较大的文件上传下载,还有gitpush命令行操作log......