Gitlab备份
1.备份命令
#备份命令,直接执行
gitlab-rake gitlab:backup:create
#默认会在/var/opt/gitlab/backups目录下创建个以时间戳开头的备份文件
#当然了,这个默认备份路径可以改
2.修改默认的备份路径
#可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
#设置备份过期时间,以秒为单位,604800是一周
gitlab_rails['backup_keep_time'] = 604800
3.重载配置文件使其生效
#设置完了别忘了执行 gitlab-ctl reconfigure 命令重载配置文件使其生效
gitlab-ctl reconfigure
4.其他文件也要备份
#执行gitlab-rake gitlab:backup:create备份命令细心的会发现,最后面有红色的报错,提示还有文件需要单独备份
#gitlab配置文件必须备份
/etc/gitlab/gitlab.rb
#nginx配置文件
/var/opt/gitlab/nginx/conf
#postfix 邮件配置备份
/etc/postfix/main.cf
5.脚本一键备份
#!/bin/bash
#判断备份路径是否存在,如果不存在就创建
if [ ! -d "/data/gitlab_backup_data" ]; then
mkdir -p /data/gitlab_backup_data
fi
#备份gitlab
gitlab-rake gitlab:backup:create &>/dev/null
#备份其他文件
\cp -a /var/opt/gitlab/nginx/conf/nginx.conf /data/gitlab_backup_data
\cp -a /etc/gitlab/gitlab.rb /data/gitlab_backup_data
\cp -a /etc/postfix/main.cf /data/gitlab_backup_data
#查找15天以前的备份文件删除
find /data/gitlab_backup_data -mtime +15 -type f -name "*.tar" |xargs rm -rf {} &>/dev/null
6.定时任务
0 2 * * * /data/scripts/gitlab_backup.sh &>/dev/null
Gitlab恢复
1.停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2.恢复备份,指定要恢复备份文件的时间戳
#比如备份文件是1625016396_2021_06_30_12.0.2_gitlab_backup.tar,那么需要执行下面命令(看好时间戳)
gitlab-rake gitlab:backup:restore BACKUP=1625016396_2021_06_30_12.0.2
3.恢复备份后执行
gitlab-ctl restart
gitlab-ctl reconfigure
#如果备份的tar文件和已安装版本的GitLab之间存在GitLab版本不匹配,将会出现错误,需要安装正确的Gitlab版本后重试