backup

gitlab linux

GitLab 簡単バックアップ

2018/03/07

GitLabのバックアップについては、いろいろやり方があるようですが、下記のコマンド一発で行けます。

gitlab-rake gitlab:backup:create

リストアするには

gitlab-rake gitlab:backup:restore

bundle コマンドなどでバックアップを取得する方法もあるようですが、普段使ってないとインストールするのも、なかなか手間です。
ruby や、gem のインストールも必要なので。
上記コマンドであれば一発でOK

バックアップファイルは、デフォルト設定だと

/var/opt/gitlab/backups/

に出力されます。

ファイル名は、{UNIXタイムスタンプ}_gitlab_backup.tar

ちなみに現在のタイムスタンプを表示するシェル・コマンド

date +%s

バックアップの設定は

/var/opt/gitlab/gitlab-rails/etc/gitlab.yml

このファイルの

backup:

の項目

keep_time: には、バックアップファイルを保存しておく秒数を設定します。永遠の保存する(自動で削除しない)場合は、0 または設定なしのまま。

例えば、3日間バックアップを保存しておく場合は

keep_time: 259200        # 3 days # default: 0 (forever) (in seconds)

Git や、GitLab自体が、履歴を管理するものなので、バックアップファイルは何世代も保存しておく必要は無さそうですね。

定期的にバックアップを取得したいので、下記のようにcrontabに登録しました。(毎日5:00にバックアップ)

# GitLab Backup & Server rsync
0 5 * * * /usr/bin/gitlab-rake gitlab:backup:create >/dev/null 2>&1; /usr/bin/rsync -avu --delete -e "ssh" --bwlimit=1024 /var/opt/gitlab/backups/ tom@example.com:/DST_DIR/. >/dev/null 2>&1

上記のcrontabに登録したコマンドの後半(rsync部分)は、バックアップファイルを他のサーバにコピーしています。

他のサーバにコピーする場合は、バックアップファイル転送元サーバで生成したSSH公開鍵を、転送先サーバのauthorized_keysに登録しておきます。

関連記事:SSHキー(鍵ペア、公開鍵/秘密鍵)の生成

関連記事:scpやrsyncで低負荷コピー

-gitlab, linux
-, ,