rsyncコマンド
$rsync -rlvpt --delete /misc/copyoriginaldirectory /home/copydestinationdirectory
形式:rsync (オプション) (コピー元) (コピー先)
/etc/crontabの追加
00 2 * * * ユーザーID(neuroとか) /usr/bin/rsync -rlvpt --delete /misc/copyoriginaldirectory /home/copydestinationdirectory
毎日午前2時にrsyncでバックアップ
引用元
http://oku.edu.mie-u.ac.jp/~okumura/networking/rsync.html
rsync が一般ユーザで -a オプションを付けたとき次のようなメッセージを出すことがあります:
rsync error: partial transfer (code 23) at main.c(925)
これはファイルの owner が違っていて変更できなかったといったことのようです。
-a は -rlptgoD と等価ですが一般ユーザでは goD オプションは一般に使えないので,-a ではなく -rlpt を指定すればいいのだろうと思います。
サーバーを運営していく上で重要なのがバックアップだ。パソコンの部品の中でもHDDはもっとも壊れやすく、サーバーの重要なデータが失われてし まうことがある。実際に自分もHDDのクラッシュを経験した。何か調子が悪いなと思いつつ動かし続けていたサーバーを、ある日再起動してみると途中でス トップしてしまう。シングルユーザーモードで起動しても、fsckが動いてくれない。仕方なく新しいHDDに交換したが、別のパソコンにデータをバック アップしていたので被害を受けずにすんだ。
また、あやまってデータを消してしまうこともある。これも体験談だが、WindowsのSSHクライアントからサーバーに接続して作業していたときのこ と。電話が入ってきて別の仕事に注意がいったとき、まちがえてクリップボードの中身をSSHクライアントにペーストしてしまったようなのだ。クリップボー ドの中身がコマンドとしてLinuxで実行されていく。まあ大部分は「command not found」となるけれど、何がどうなったのかホームディ レクトリの中のファイルがごっそりと消えていた。rmとかそういう文字列があったのかもしれない。これもバックアップのおかげですぐに復旧できた。
最初のうちはftpでパソコンの側にバックアップをとっていたのだが、これでは面倒でついついバックアップがおろそかになる。そこでバックアップを自動的に行うことを考えた。使うコマンドは「rsync」である。
rsyncはWindowsのxcopyコマンドに似ていて、ディレクトリの構造をたもったままコピーができる。たとえば、/homeディレクト リ以下をまとめてコピーするなんてことが簡単にできるわけだ。2回目以降のコピーでは更新や追加されたファイルだけがコピーされるので、バックアップが短 時間で終わる。さらに削除したファイルはバックアップ先でも削除されるため、バックアップ元とバックアップ先の内容をまったく同じに保つことも可能だ。
本当は別のHDDやマシンにバックアップをとるべきだが、まずは同一HDDの別のディレクトリにバックアップをとってみよう。HDDの故障には対 処できなくても、誤ってファイルを削除したときなどは役に立つ。ここでは/var/backupディレクトリを作成し、その中に/homeディレクトリ以 下の内容をまるごとコピーしてみる。打ち込むコマンドは次の2行だ。
# rsync -a --delete /home /var/backup
rsyncの書式は「rsync (オプション) (コピー元) (コピー先)」となっている。指定できるオプションは次の表のようになっている。「-a --delete」はコピー元とコピー先を同期させたいときに使うオプションだ。