綾小路龍之介の素人思考

ftpリモートホスト間でミラーリングするには

ftpの仕様によれば間にローカルホストを挟まなくても直接リモートホスト同士でやり取りができるらしい。でも、これに対応しているサーバ自体が少ないため(攻撃の可能性があるため)、この方法は使えない。仕方ないのでリモートA、ローカル、リモートB、の順番でリモートAの最新ファイルをリモートBまで持ってくるようにする。例えば下のようなbatファイルを作ってみた。

ffftp.exe -s REMOTE_A -d -f -q
ffftp.exe -s REMOTE_B -m -f -q

でも上手くいかない。なぜなら、ffftpがローカルにリモートAの内容をもってくる前に次の処理に進んでしまうからだ。これを解決するにはプロセスを監視してffftpが終了したら次の処理に進むようにする。でもこれをWindowsでやろうと思うとはなはだめんどくさいことになる。例えばCygwin等のシェルスクリプトが動く環境を導入して、ps -W | grep FFFTPとかやるしかないだろう。ただ、Cygwinを導入するくらいならばもっと別の方法があると思う。

紆余曲折あって結論は次のようになった。それは、上のコマンドをそれぞれ人間が終了確認して行うようにするのだ。ほっとけばミラーサイトが作れるというわけではないが、そのくらいの手間はしかたないだろう。まぁ1時間ごとに交互にダウンロード、アップロードするようなスケジュールを組むというのも一つの解決策だとは思う。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-12-12T21:54:43+09:00
  2. Modified: 2008-12-12T07:37:11+09:00
  3. Generated: 2017-01-21T23:09:22+09:00