質問
リモート UNIX FTP サーバーからファイルをダウンロードした後、すべてのファイルが正しくダウンロードされたことを確認したいとします。最低限、Windows コマンド プロンプトの「dir /s」コマンドと同様の情報が得られます。FTP クライアントは Windows 上で動作します。
解決
悲しいことに、これは Unix/Linux ユーザー向けに書かれたものです :/
個人的には、LFTP/RSYNC の Linux バイナリを Windows 上で動作させるためだけに CYGWIN をインストールします。これと競合するものはないようです。
@zadok.myopenid.comがRsyncに言及したように、これはCygwinを使用してWindowsビルドのように見えます(最終的にはボックスにSSHアクセスを取得できる場合)
http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp
Rsync は、すべてをチェックサムと比較し、部分的な変更ブロックを最適に転送するという点で便利です。
CYGWIN/Linux を入手した場合:
http://lftp.yar.ru/ これは私のお気に入りの探索ツールです。
たとえリモートであっても、bash で実行できることはほぼすべて実行できます。
例:
$ lftp mirror.3fl.net.au lftp mirror.3fl.net.au:~> ls drwxr-xr-x 14 root root 4096 Nov 27 2007 games drwx------ 2 root root 16384 Apr 13 2006 lost+found drwxr-xr-x 15 mirror mirror 4096 Jul 15 05:20 pub lftp mirror.3fl.net.au:/> cd games/misc lftp mirror.3fl.net.au:/games/misc>find ./ ./dreamchess/ ./dreamchess/full_game/ ./dreamchess/full_game/dreamchess-0.2.0-win32.exe ./frets_on_fire/ ./frets_on_fire/full_game/ ./frets_on_fire/full_game/FretsOnFire-1.2.451-macosx.zip ./frets_on_fire/full_game/FretsOnFire-1.2.512-win32.zip ./frets_on_fire/full_game/FretsOnFire_ghc_mod.zip ./gametap_setup.exe ...... lftp mirror.3fl.net.au:/games/misc> du gametap_setup.exe 32442 gametap_setup.exe lftp mirror.3fl.net.au:/games/misc> du -sh gametap_setup.exe 32M gametap_setup.exe lftp mirror.3fl.net.au:/games/misc>
他のヒント
SSH アクセスがある場合は、代わりに rsync を使用してください。はるかに優れたデータ転送アプリです。
OS のヒューズを取得し、ftpfs をロードします。これにより、リモート FTP ディレクトリをローカルにマウントできるようになり、その上で dir /s またはその他のアプリケーションを使用できるようになります。
これを行う :
ls -lR
..................
使用できます ftp.listFiles("ディレクトリ") apache-commons-net から取得し、すべてのファイルを再帰的にフェッチする独自の BFS または DFS を作成できます。
コマンドラインで簡単なFTPを使用していると仮定すると、-RLオプションを使用してDIRコマンドを使用して再帰的に検索し、ファイルにコピーし、GREP、検索、またはOSでサポートされている方法を使用してファイルを検索します。
ftp> dir -rl Education.txtローカルファイルへの出力:教育.txt?Y227パッシブモードの入力(9,62,119,15,138,239)150ファイルリストのオープニングASCIIモードデータ接続226転送完全