栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker gitlab定时备份与异地同步备份文件

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker gitlab定时备份与异地同步备份文件

第一章: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按下去就可以,然后公钥传输到异地服务器

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=1643891119
其他备忘: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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号