Gitlab的数据非常重要,那都是程序员辛苦工作的成果,所以要做好备份。
备份方法
gitlab-rake gitlab:backup:create
执行完成后,备份文件存放在:
/var/opt/gitlab/backups/
相关的配置文件在:
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/
自动备份
根据程序员的思维,这种备份工作,一定是定期的自动备份,所以就需要用到cron了。
crontab -e
会打开cron的配置文件,加入:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
保存退出后,重启cron服务:
/etc/init.d/cron restart
或者:
service cron restart
这样,在每天凌晨2点的时候,会自动进行备份。
注意:该语句的空格需要用半角字符,用中文全角字符会不执行。
另外,还可以打开日志,看看执行成功没有:
vim /etc/rsyslog.conf
把其中关于cron的部分,前面的#去掉。
service rsyslog restart
然后重启cron。
service cron restart
上传到阿里云OSS
每天备份一次数据,服务器上的硬盘会不够用,所以传到OSS是一个不错的选择。
下载OSS同步工具:
wget http://gosspublic.alicdn.com/ossutil/1.7.8/ossutil64
给它可执行权限:
chmod 755 ossutil64
创建配置文件:
./ossutil64 config
输入oss的认证信息。
然后执行一下试试看:
/root/ossutil64 sync /var/opt/gitlab/backups/ oss://yangyq-backup/gitlab/ --update --delete
其中yangyq-backup为桶的名字。后面的参数指的是将旧的文件删除,只保留一份。
如果执行成功,则加入定时任务:
crontab -e
加入:
0 3 * * * /root/ossutil64 sync /var/opt/gitlab/backups/ oss://yangyq-backup/gitlab/ --update --delete --force
重启crontab服务:
service cron restart
这样,每天凌晨2点,会备份数据,3点将备份的数据传入阿里云oss,并将旧的版本删除。