Index > Subversion レポジトリのバックアップでサーバの容量が足りない場合の対処 bzip2 を併用
Sun, August 23, 2009

Subversion レポジトリのバックアップでサーバの容量が足りない場合の対処 bzip2 を併用

あまりディスク容量に余裕がないサーバ上でSubversionサーバを運用していたのだが、 svnadmin dump でバックアップを取ろうとしたところ、ディスクを100%使い切ってしまった。

bzip2 でパイプ

ちなみにバックアップは以下のMakefileで実行。

today := `date +%Y%m%d`
repos := /svn/repos

dump:
    svnadmin dump $(repos) |  svn_dumpfile.$(today)

こうしておくと、make するだけで今日の日付付きのダンプファイルをつくれるので便利です。

ネット調べてみると、svnadmin dump コマンドに続けて bzip2 で圧縮してから ダンプファイルにリダイレクトすればいいらしい。
以下のように...

dump:
    svnadmin dump $(repos) |  bzip2 >  svn_dumpfile.$(today).bz2

subversionのsvnadmin dumpコマンドは、デフォルトで圧縮されている、という記述を subversion解説本で読んだ記憶があって(記憶が間違っている可能性大) いままで圧縮することなんて考えたことなかった。

これで容量の少ないサーバでもなんとかもうしばらく運用できそうです。

参考にしたURL http://piro.sakura.ne.jp/latest/blosxom/system/2008-11-19_backup.htm 感謝!

バックアップしたダンプファイルを復帰させる場合

bzcat コマンドを使って、圧縮ファイルを解凍しつつ、svnadmin load コマンドに渡します。

$ svnadmin create /svn/repos
$ bzcat svn_dumpfile.20090823.bz2 | svnadmin load /svn/repos > log 2>&1

svnadmin load コマンドは大量に標準出力にログを出すので それらをファイルにリダイレクトした方がいいと思います。

 Twitter
follow me on Twitter
 Categories