已解决
GitLab定时备份
来自网友在路上 156856提问 提问时间:2023-10-31 03:03:25阅读次数: 56
最佳答案 问答题库568位专家为你答疑解惑
GitLab定时备份
文章目录
- GitLab定时备份
- GitLab基础环境
- 备份命令
- 自动清理备份
- 上传命令
- 设置定时任务
- 参考链接
GitLab基础环境
部署方式:Docker
版本:16.2.2
备份命令
Notes:
- 编写
sh
脚本时,不要使用Windows上的Notepad++类似编辑器,执行时可能会出现语法错误,直接通过touch
和vim
命令编辑即可 - 注意赋予可执行权限:
chmod +x gitlab_backup.sh
gitlab_backup.sh
#! /bin/bash
docker exec gitlab gitlab-rake gitlab:backup:create
自动清理备份
gitlab_delete.sh
#! /bin/bash
find /home/data/apps/gitlab/data/backups/ -type f -mtime +7 -name "*.tar" -exec rm -rf {} \;
寻找并删除 /home/data/apps/gitlab/data/backups/目录下内容修改时间(mtime)为7天以前的tar文件(-type f),并删除(rm -rf)
上传命令
备份后需要将文件传送至其他服务器。
Notes:
- 通过
scp
命令实现远程复制,可以设置ssh公钥实现免密登录远端服务器,设置步骤参考最后链接。 - 复制前要保证远端服务器已经存在指定的目录
gitlab_upload.sh
#! /bin/bash
backdir='/home/data/apps/gitlab/data/backups'
latestFileName=`ls $backdir -t|head -n 1`
cd "$backdir"
scp "$latestFileName" root@172.xxx.xxx.xx:/data/apps/gitlab/backups
ssh root@172.xxx.xxx.xx "find /data/apps/gitlab/backups -type f -mtime +7 -exec rm -f {} \;"
设置定时任务
crontab -e
10 0 * * * /data/gitlab/cron/gitlab_backup.sh > /tmp/cron.log 2>&1
20 0 * * * /data/gitlab/cron/gitlab_upload.sh > /tmp/cron.log 2>&1
30 0 * * * /data/gitlab/cron/gitlab_delete.sh > /tmp/cron.log 2>&1
每天的零点10分自动备份,零点20分自动将最新备份文件上传至远端服务器,零点30分自动删除7天前的备份
参考链接
- docker部署GitLab配置本机自动备份、自动清理
- gitlab定时备份
- linux添加ssh公钥免密登录
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"GitLab定时备份":http://eshow365.cn/6-28204-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Ansible中常用模块
- 下一篇: 计算机视觉的相机选型