duplyでバックアップ
サーバのバックアップをしようと思ってduplyを試してみた。duplyはduplicityというバックアップツールのフロントエンドで、duplicityはコマンドラインオプションが複雑なので設定ファイルに記述できるようにしたツール。
コマンドラインで、フルバックアップ、差分バックアップをとることができる。
インストールはapt-getでできる
$ apt-get install duply
duplyは複数のバックアップ設定を作成でき、以下のコマンド形式で実行する。
$ duply 設定名 サブコマンド
まず、最初に設定を作成するために以下のコマンドを実行する。
$ duply mybackup create
mybackupは設定名である。このコマンドを実行すると、$HOME/.duply/mybackupに設定用ディレクトリが作成され、$HOME/.duply/mybackup/configが設定ファイルになる。mybackupは
設定はこんな感じ
# gpg key data (for symmetric encryption comment out GPG_KEY) # symmetric encryptionにするのでコメントアウトする #GPG_KEY='_KEY_ID_' GPG_PW='_GPG_PASSWORD_' ... # バックアップ先。同じマシン上の外付ハードディスクにバックアップする場合はfile:///で指定 TARGET='file:///backup' ... # base directory to backup # どのディレクトリをinclude/excludeするかは別ファイル(exclude)で設定する SOURCE='/' ... # Number of full backups to keep. Used for the "purge-full" command. # See duplicity man page, action "remove-all-but-n-full". # defaults to 1, if not set # 念のためフルバックアップも5個残す。purge-full --forceするまでは残るようだが MAX_FULL_BACKUPS=5 ... # activates duplicity --full-if-older-than option (since duplicity v0.4.4.RC3) # forces a full backup if last full backup reaches a specified age, for the # format of MAX_FULLBKP_AGE see duplicity man page, chapter TIME_FORMATS # Uncomment the following two lines to enable this setting. # 1ヶ月以上経過するとフルバックアップする MAX_FULLBKP_AGE=1M DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE " ...
あとはバックアップ対象を$HOME/.duply/mybackup/excludeに記述。こんな感じ。+がincludeで-がexclude。ワイルドカードも利用できる。
+ /etc + /var/www/html + /var/svn + /var/trac + /opt/local/moin - /**
よく使いそうなサブコマンドは以下かな。
バックアップするには以下のコマンド。初回かどうか、$MAX_FULLBKP_AGEを超えているかどうかでフルか差分かが決まる。
$ duply mybackup backup
フルバックアップする
$ duply mybackup full
差分バックアップする
$ duply mybackup incr
バックアップしたファイルを表示
$ duply mybackup list
バックアップ状態を表示
$ duply mybackup status
リストアする
$ duply mybackup restore /path/to/restore
$MAX_AGE以前の古いバックアップを削除
$ duply mybackup purge --force
あとは定期的に実行するようにcrontabに書いておく
00 5 * * * root duply mybackup backup > /backup/log 2>&1
これで多分うまくいくはず