
目次 >> rsync
UnixやWindows、Macなどで使えるバックアップツールはOSに付属のものから市販のものまで無数に存在するが、ここで紹介するrsyncは多くのOS上で動きかつ、その特別なアルゴリズムにより、すでに存在するファイルを転送しないだけでなく、バイナリの差分のみを転送する非常に優れたバックアップツールである。
同じパソコン内のHDDから別のHDDへのバックアップや、sshを使った遠隔地のサーバへのバックアップなど柔軟なバックアップができる。
LinuxやMac OS Xでは標準で(もしくはパッケージのインストールで)、Windowsではcygwinに入っており、このコマンドが使いこなせれば、OSなどが変わっても常に同じ方法でバックアップを取ることができる。
使い方の基本は
$ rsync 各種オプション コピー元 コピー元・・・ コピー先
である。
主なオプションとしては、
$ rsync -avz --delete -e "ssh -l ユーザー名" コピー元 コピー先
オプションのaは属性の保存を、vはコピー中詳細表示を、zは転送時に圧縮を指定している。
例:
$ rsync -avz --delete -e "ssh -l foo" /hoge example.com:/home/foo/backup
ここでは、/hogeディレクトリ内のファイルをexample.comというホストの/home/foo/backupディレクトにバックアップを取っている。転送にはsshを使い、ユーザー名はfooである。cronで実行する場合は、詳細表示はいらないので、
rsync -az -e "ssh -l foo" /hoge example.com:/home/foo/backup
このような内容にすればいい。なお、sshで接続する際には、公開鍵認証を使いパスワードなしでアクセスできるようにしておく。
これらのコマンドを定期的にcronで動かせば、自動的にバックアップを取ることができる。