在Ubuntu系统上备份和恢复GitLab数据是一个重要的任务,以确保数据的安全性和业务的连续性。以下是详细的步骤和方法:
创建备份目录:
sudo mkdir -p /var/opt/gitlab/backups
sudo chown -R git:git /var/opt/gitlab
修改GitLab配置:
编辑 /etc/gitlab/gitlab.rb
文件,设置备份路径和备份保留时间。
sudo vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # 备份7天
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
定时任务备份:
使用 crontab
设置定时任务,例如每天凌晨2点执行备份。
sudo crontab -e
# 添加以下行
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
手动执行脚本进行备份:
sudo gitlab-rake gitlab:backup:create
使用rsync进行增量备份(可选):
结合 rsync
进行增量备份,以节省空间和备份时间。
sudo rsync -avz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /var/opt/gitlab/ /path/to/backup/directory/
停止相关服务:
停止GitLab相关服务以确保数据一致性。
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
恢复备份:
将备份文件放到 /var/opt/gitlab/backups
目录中,并赋予权限。
sudo cp /path/to/backup/file.tar /var/opt/gitlab/backups/
sudo chmod 777 /var/opt/gitlab/backups/file.tar
sudo gitlab-rake gitlab:backup:restore BACKUP=1679122231_2024_06_41_13.9.7_gitlab_backup.tar
启动GitLab服务:
恢复完成后,启动GitLab服务。
sudo gitlab-ctl start
验证恢复情况:
使用旧的账户测试登录,检查仓库项目是否完全恢复。
通过以上步骤和方法,可以在Ubuntu系统上有效地备份和恢复GitLab数据,确保数据的安全性和业务的连续性。