Debian上GitLab的备份与恢复方法
一 环境准备与关键说明
二 备份步骤
sudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiqsudo gitlab-rake gitlab:backup:create(或新语法 sudo gitlab-backup create)。归档默认写入 /var/opt/gitlab/backups,文件名形如 TIMESTAMP_YYYY_MM_DD_VERSION_gitlab_backup.tar。/etc/gitlab/gitlab.rb:
gitlab_rails['backup_path'] = "/data/gitlab/backups"(自定义备份目录)gitlab_rails['backup_keep_time'] = 604800(保留 7 天,单位秒)gitlab_rails['backup_archive_permissions'] = 0644(归档权限)sudo gitlab-ctl reconfiguremkdir -p /data/gitlab/backups && chown -R git:git /data/gitlab/backups)。/var/opt/gitlab/backups/gitlabbak.sh:#!/bin/bash
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
find /var/opt/gitlab/backups -name "*.tar" -type f -mtime +10 -delete
0 8 * * 1,3,5 /bin/sh /var/opt/gitlab/backups/gitlabbak.sh >/dev/null 2>&1scp /var/opt/gitlab/backups/*.tar user@remote:/path/to/backups三 恢复步骤
sudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiqsudo gitlab-rake gitlab:backup:restore BACKUP=1623724635_2021_06_15_13.12.3sudo gitlab-ctl start(或 sudo gitlab-ctl restart)。四 常见问题与补充
backup_keep_time 或脚本定期清理旧备份,避免磁盘占满。docker exec -it gitlab gitlab-backup create(归档位于容器内 /var/opt/gitlab/backups,通常挂载到宿主 /srv/gitlab/data/backups)docker exec -it gitlab gitlab-backup restore BACKUP=文件名。