-
环境说明
服务器环境centos7.x、gitlab版本11.4.0
-
定时任务
2.1 编辑定时任务vim /etc/crontab
添加如下Gitlab全量备份任务,每周五22点执行备份
0 22 * * 5 root gitlab-rake gitlab:backup:create
默认备份生成目录为:/var/opt/gitlab/backups/
-
生成备份文件传送到云服务器或者其他备份服务器
备份服务器需要配置免密传送,请参照如下地址配置https://blog.csdn.net/liuxiaoming1109/article/details/89349470?spm=1001.2014.3001.5502
传送脚本 脚本存放目录/home/shell
vim remote_backup.sh#!/bin/bash # 本地备份目录 localBackupDir=/var/opt/gitlab/backups/ # 远程服务器账号 remoteUser=root # 远程服务器目录 remoteBackDir=/home/gitlab/backups # 远程服务器IP remoteIP=远程服务器IP #日志输出目录 backupLog=/home/shell/logs/out.log # 查找gitlab本地生成备份, 时间为24小时内后缀为.tar的备份文件 lastBackupFile=$(find $localBackupDir -type f -mmin -1440 -name '*.tar') echo "备份文件: $lastBackupFile" >> $backupLog echo "传送时间: $(date +"%Y-%m-%d %H:%M:%S")" >> $backupLog backup() { if [ ! -n "$lastBackupFile" ]; then echo "查询备份文件不存在,备份失败" else scp -r $lastBackupFile $remoteUser@$remoteIP:$remoteBackDir echo "备份成功!" fi echo "------------------------------" } backup>>$backupLog
修改权限
chmod u+x remote_backup.sh
-
传送脚本加入定时任务
添加定时任务,每周五23点半执行传送到服务器vim /etc/crontab 30 23 * * 5 root /home/shell/remote_backup.sh
备注:remote_backup.sh传送脚本
-
加载定时任务,生效
crontab /etc/crontab
-
Gitlab配置定时删过备份文件
Gitlab已经支持清理配置vim /etc/gitlab/gitlab.rb
这里配置30天有效
###! The duration in seconds to keep backups before they are allowed to be deleted 30 day gitlab_rails['backup_keep_time'] = 2592000
-
重新加载gitlab的配置文件
gitlab-ctl reconfigure
Gitlab远程服务器备份
于 2023-01-11 17:57:46 首次发布