gitlab的定时数据备份与恢复

gitlab的定时数据备份与恢复

一、主机部署的gitlab的定时数据备份

1、执行命令crontab -e,将定时任务添加后保存;
#crontab -e
2、添加如下配置,时间可更改,保存配置;
*  *  *  *  *  command
分  时  日  月  周  命令

其中,
第1列表示分钟,1~59,每分钟用*表示
第2列表示小时,1~23,(0表示0点)
第3列表示日期,1~31
第4列表示月份,1~12
第5列表示星期,0~6(0表示星期天)
第六列表示要运行的命令。


比如每天13:00、16:00生成:

0 13 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
0 16 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
3、重启crontab
#systemctl restart crond
4、验证备份数据
#cd var/opt/gitlab/backups
#ls
5、查看备份过程
#cat /var/spool/mail/root
6、保留一定时间的备份数据
比如15天:15*3600*24

 #vim /etc/gitlab/gitlab.rb
 #gitlab_rails['backup_keep_time'] = 1296000
 #gitlab-ctl reconfigure

二、docker部署的gitlab的定时数据备份

1、编写脚本"gitlab.sh"
#!/bin/sh
gitlab=$(sudo docker ps -aqf 'name=gitlab_gitlab_1')
sudo docker exec $gitlab  gitlab-rake gitlab:backup:create
2、给执行权限
#chmod +x gitlab.sh
3、#crontab -e
0 2 * * * /root/./gitlab.sh
4、重启
#systemctl restart crond
5、验证备份数据
#cd /gitlab-data/data/backups
#ls
6、如果报错sudo: 没有终端存在,且未指定 askpass 程序
在/etc/sudoers下添加
用户名        ALL=(ALL)       NOPASSWD: ALL 

三、容器数据恢复

1、进入gitlab容器内部
docker exec -it gitlab_gitlab_1 bash
2、恢复数据
(1)将原服务器上已备份好的数据…/data/backups/xxx.tar导入当前服务器的相同目录,为防止恢复数据时权限不足的问题,将权限修改为777
chmod 777 xxx.tar
(2)执行数据恢复指令
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=xxx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值