在CentOS上備份和恢復GitLab數據是一個重要的任務,以確保數據的安全性和業務的連續性。以下是一些詳細的步驟和方法:
使用 gitlab-rake
命令進行手動備份:
sudo gitlab-rake gitlab:backup:create
該命令會備份GitLab倉庫、數據庫、用戶、用戶組、用戶密鑰、權限等信息。默認備份文件存儲在 /var/opt/gitlab/backups
目錄下。
使用 crontab
定時執行備份任務。例如,以下命令會在每天凌晨兩點執行備份:
0 2 * * * /usr/local/bin/gitlab-rake gitlab:backup:create
可以創建一個備份腳本并添加到 crontab
中定期執行。例如:
#!/bin/bash
BACKUP_DIR="/var/opt/gitlab/backups"
DATE=$(date +%Y%m%d%H%M%S)
/usr/local/bin/gitlab-rake gitlab:backup:create
find $BACKUP_DIR -name "*.tar" -type f -mtime +1 -exec rm -rf {} \;
然后,在 crontab
中添加:
0 1 * * * /path/to/backup_gitlab.sh
這將在每周一的8:30執行備份腳本。
修改 /etc/gitlab/gitlab.rb
配置文件以自定義備份參數,包括備份路徑、文件權限和保留時間:
gitlab_rails['backup_path'] "/data/gitlab/backups"
gitlab_rails['backup_archive_permissions'] 0644
gitlab_rails['backup_keep_time'] 604800 # 保留7天備份
修改配置后,運行以下命令使配置生效:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
確保數據一致性,停止GitLab相關服務:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
使用以下命令恢復備份,其中 BACKUP_TIMESTAMP
為備份文件的時間戳:
sudo gitlab-rake gitlab:backup:restore BACKUP_TIMESTAMP
恢復過程中會提示輸入兩次 yes
,按提示操作。
恢復完成后,啟動GitLab服務:
sudo gitlab-ctl start
通過以上方法,您可以在CentOS上為GitLab建立有效的備份和恢復機制,有效保護您的寶貴數據。建議定期執行備份,并在必要時進行恢復測試。