Bitbucket Serverのバックアップを設定しました。
今までは、rsyncとpg_dumpの組み合わせでスクリプト化していたのですが、自己流だとBitbucketをロックしていないことに気がつきました。
適切なバックアップ方法
公式の方法や適切な方法があるのか調べてみると、次のような情報を見つけました。
Data recovery and backups – Atlassian Documentation より
Two ways to back up Bitbucket Server
To cater for these different policies and requirements, Bitbucket Server provides two different backup strategies:
- the Bitbucket Server Backup Client,
- Bitbucket Server DIY Backup.
なるほど、上記のいずれかの方法を使えば良いようです。そこで両方試してみたのですが、前者は私の環境では上手く動かず、後者の「Bitbucket Server DIY Backup」を設定しました。
Time:Pieceが未インストール
しかし、これも直ぐには動きませんでした。
まずは、次の記事からリンクされているスクリプト一式をダウンロードし、「bitbucket.diy-backup.vars.sh」ファイルを編集しました。
Using Bitbucket Server DIY Backup – Atlassian Documentation
早速実行してみると、次のようなエラーが出てしましいました。
[cc]tar (child): /var/atlassian/bitbucket_backup_archives/: open 不能: ディレクトリです
tar (child): Error is not recoverable: exiting now[/cc]
スクリプトを調べてみると、PerlのTime:Pieceを使っているのですが、Bitbucket Serverを動かしているサーバーにはインストールされていなかったことが原因でした。
次のようにして、Time:Pieceをインストールしました。
[cc]yum install perl-Time-Piece[/cc]
実行時間
実行時間は比較的早いと思うのですが、仮想PC上で動かしていて、レポジトリの容量が圧縮されている状態で4GBという条件で動作させると、アーカイブを作るのに5分くらいかかります。
これを更にOS Xのタイムマシンでバックアップさせるとすると、1日あたり必要なストレージ容量が4GB * 24 = 96GBとなります。1時間おきに動作させると、結構容量を食ってしまうので、1日1回くらいが良さそうです。