最初はCygwin+lftpでいけるかと思ったが、少なくとも内の環境では上手くいかなかった。仕方いないのでCyuwin+NcFTPにしてみた。NcFTPのffftpに対するアドバンテージといえば、ほっといてもミラーリングを行ってくれることと、アップロードされたファイルのタイムスタンプをアップロード時のタイムスタンプではない物にしてくれること、の2点だと思う。欠点はとにかく処理が遅いこと。ffftpに比べると格段にのろい。その上、付加されるタイムスタンプの設定が利かないと思う。付加されたタイムスタンプはローカルのものと全く同じ物ではないし、9時間問題というわけでもないので、多分サーバの現在時刻だろう。したがってNcFTPを上のように使う方法はお勧めできない。
でもとりあえず手法だけは公開しておこうと思う。僕よりもずっと賢い人が何か解決策を見つけてくれるかもしれないし。僕はCygwin上で下のようなシェルスクリプトを動かしてみた。とにかくこれはテストのために書いたものだからぜんぜんきれいではないけどね。
ncftp -u USER_A -p PASS_A ftp.HOST_NAME_A << __GET__
get -R *
__GET__
ncftp -u USER_B -p PASS_B ftp.HOST_NAME_B << __PUT__
put -R *
__PUT__