第一章:gitlab定时备份
1、创建执行备份脚本
vim gitlab_backup.sh
#!/bin/bash
case "$1" in
"start")
docker exec gitlab gitlab-rake gitlab:backup:create
;;
esac
授权文件
chmod 777 gitlab_backup.sh
2、加入定时计划,定时执行
crontab -e
输入上面脚本路径
00 12 * * * sh /data/backup/gitlab_backup.sh start
当前表示每天12点开始执行 – 前面规则可以改
分 时 日 月 周 命令
第1列表示分钟,1~59,每分钟用*表示
第2列表示小时,1~23,(0表示0点)
第3列表示日期,1~31
第4列表示月份,1~12
第5列表示星期,0~6(0表示星期天)
第六列表示要运行的命令。
比如每天13:00、16:00生成:
0 13 * * * sh backup.sh start
3、重启crond
systemctl restart crond
备份文件在你docker指定的映射路径下/gitlab/data/backups/
可以使用命令查看定时任务执行日志
cat /var/spool/mail/root
第二章:异地容灾将备份文件同步到其他服务器
第一步两台服务器都安装 rsync
yum -y install rsync
第二步gitlab所在服务器创建脚本
vim rsync.sh
#!/bin/bash
rsync -arvuz /data/docker-data/gitlab/data/backups/ root@192.168.0.26:/data/backups/
上面ip改为你要备份到哪个异地服务器,然后授权文件
chmod 777 rsync.sh
操作支持免密访问异地服务器
ssh-keygen -t rsa
默认enter按下去就可以,然后公钥传输到异地服务器
cd ~
scp -p .ssh/id_rsa.pub root@192.168.0.26:/root/.ssh/authorized_keys
第三步增加定时任务
crontab -e
输入上面脚本路径
30 12 * * * sh /data/backup/rsync.sh start
第四步重启crond
systemctl restart crond
可以使用命令查看定时任务执行日志
cat /var/spool/mail/root
后续需要使用备份文件恢复gitlab可以使用以下命令
#进入到docker对应镜像的环境内部
docker exec -it gitlab /bin/bash
#执行还原,时间改为对应备份文件的前面时间戳
gitlab-rake gitlab:backup:restore BACKUP=1662376655_2022_09_05_14.10.0
其他备忘:gitlab本地切换远程仓库语句
#拉取旧库所有远程分支
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
#手动上传项目到新的远程仓库
git remote remove origin
git remote add origin http://ip:port/iad/ECRM.git
git push -u origin --all
————————————————
版权声明:本文为原博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/kkillala/article/details/125202349