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の設定はこちら