rsyncでリモートホストとファイルの同期をとる

rsync (アールシンク、リモートシンク)とは、リモートホストへファイルを転送することができるプログラムです。
ただ、転送と言っても、更新されているファイルだけ転送したり、転送元にないものは削除できたりと、さまざまなオプションがついています。

ここでは、ローカルホストの /home と、192.168.1.10のリモートホストの /home の同期のとりかたを紹介します。

rsyncの実行


# rsync -auvz --delete -e ssh /home/ 192.168.1.10:/home/
(ローカル→192.168.1.10にファイル転送)
 

上記のコマンドのオプションの意味は

-a : 可能な限りファイルの情報を保持(パーミッションとか、オーナーとか)
-u : 更新されたファイルだけ転送
-v : 詳細を出力
-z : ファイルを圧縮して転送
--delete : 送信元に存在しないファイルの削除
-e ssh : 転送にSSHを使う

この他にもたくさんのオプションがありますが、すべては紹介できないので、
http://www.infoscience.co.jp/technical/rsync/README.html
を参照してください。

ここで、/home と書くのと、/home/ と書くのでは意味が違ってくるので注意

このコマンドを cron で回せば、ほぼ同期を取ることができますが、ssh のパスワードを問われないようにする必要があります。
SSHの設定はこちら cronの設定はこちら