在CentOS系统中,备份和恢复GitLab的过程可以分为以下几个步骤:
停止GitLab服务:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
备份配置文件:
sudo tar -cvzf /var/opt/gitlab/backups/configs-$(date +%Y-%m-%d).tar.gz /etc/gitlab
备份仓库数据:
sudo tar -cvzf /var/opt/gitlab/backups/repos-$(date +%Y-%m-%d).tar.gz /var/opt/gitlab/repositories
备份日志文件:
sudo tar -cvzf /var/opt/gitlab/backups/logs-$(date +%Y-%m-%d).tar.gz /var/log/gitlab
备份数据库:
GitLab使用PostgreSQL作为数据库,可以使用pg_dump
命令进行备份:
sudo -u postgres pg_dump -Fc --no-owner --no-acl --dbname gitlabhq_production > /var/opt/gitlab/backups/postgres-$(date +%Y-%m-%d).dump
压缩所有备份文件:
sudo tar -cvzf /var/opt/gitlab/backups/gitlab-backup-$(date +%Y-%m-%d).tar.gz \
/var/opt/gitlab/backups/configs-*.tar.gz \
/var/opt/gitlab/backups/repos-*.tar.gz \
/var/opt/gitlab/backups/logs-*.tar.gz \
/var/opt/gitlab/backups/postgres-*.dump
停止GitLab服务:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
解压备份文件:
sudo tar -xvzf /var/opt/gitlab/backups/gitlab-backup-YYYY-MM-DD.tar.gz -C /
恢复配置文件:
sudo tar -xvzf /var/opt/gitlab/backups/configs-YYYY-MM-DD.tar.gz -C /
恢复仓库数据:
sudo tar -xvzf /var/opt/gitlab/backups/repos-YYYY-MM-DD.tar.gz -C /
恢复日志文件:
sudo tar -xvzf /var/opt/gitlab/backups/logs-YYYY-MM-DD.tar.gz -C /
恢复数据库:
sudo -u postgres pg_restore -d gitlabhq_production /var/opt/gitlab/backups/postgres-YYYY-MM-DD.dump
修改数据库权限:
sudo chown -R postgres:postgres /var/opt/gitlab/postgresql
启动GitLab服务:
sudo gitlab-ctl start
通过以上步骤,您可以在CentOS系统中成功备份和恢复GitLab。