rsync + sshでサーバーを同期する(FW内)の設定メモ 2001/02/14 Ver.1 FWの内側にあるマシンから、インターネット上にあるマシンへ ファイルをコピーし、同期させる手順をまとめました。 1.概要 同期させる2台のPCが共にインターネット上にある場合、 http://www.ioa.s.u-tokyo.ac.jp/VST/PCtips/ssh_tips.html を参考にして、お互いを.shostsファイルで信頼しあい、rsync で転送を行うという手段が取れる。 しかしながら、一方がFW内にある場合はこの方法は取れない。 私の行った設定では、expectを使ってバッチ的に処理を行う ことで解決させた。 2.サンプルスクリプト 1) FW内から外へ転送 [munetika@pikachu munetika]$ cat down.sh #!/usr/bin/expect set timeout 10 spawn telnet www.xxx.yyy.zzz expect login:\ ; send ++++++\r expect word:\ ; send ******\r expect $\ ; send "/usr/bin/rsync -auvvz -e /usr/bin/ssh --exclude '*~' --delete ~/Doc ++++++@yourdomain.com:~/\r" expect word:\ ; send ******\r interact 2) FW外から内へ転送 #!/usr/bin/expect set timeout 10 spawn telnet www.xxx.yyy.zzz expect login:\ ; send ++++++\r expect word:\ ; send ******\r expect $\ ; send "/usr/bin/rsync -auvvz -e /usr/bin/ssh --exclude '*~' --delete ++++++@yourdomain.com:~/Doc ./\r" expect word:\ ; send *****\r interact www.xxx.yyy.zzz : コマンドを実行するマシンのIPアドレス ++++++ : ユーザー名が入ります ****** : パスワードが入ります 一度、telnetを使ってログインし、rsyncコマンドを使って同期させる という流れになります。 注意しておかないといけないことは、このコマンドはFW内からしか実行 できないということです。