2017-03-13 2 views
0

私はいくつかのディレクトリ、いくつかのレベルの深いFTPサーバーに接続しています。これらのディレクトリには、同じファイルのさまざまなバージョンが含まれています。タイムスタンプの異なる同じ固有のファイル名が複数のディレクトリに存在する可能性があり、各ファイルの最新バージョンがどこにあるのかわかりません。私はこのサーバーを管理しておらず、それは愚かな状況だと容易に認めます。wget with timestampingは同じファイルを繰り返しダウンロードします

--timestampingとwgetを使用して、最新のバージョンのファイルを取り込み、--no-directoriesオプションを使用してすべてのファイルを最新のファイルにまとめてみました。私の頭の中では、これはちょうど1つの場所に一度現れるすべてのファイルの最新バージョンで、サーバ上のすべてのディレクトリを再帰的に処理しても魔法のように終わるはずです。しかし、ローカルのタイムスタンプがFTPサーバー上のタイムスタンプと同じであることを手動で確認したにもかかわらず、多くの時間ファイルが再ダウンロードされていることに気づいています。

--no-directoriesには、wgetのタイムスタンプを妨害するものはありますか?

私が発行していますコマンドラインはこれです:

wget -q --show-progress --no-directories -r -N -l inf ftp://user:[email protected]/ 

私はこのような1つだけのディレクトリをターゲットにする場合、私は(そのディレクトリ内のファイルのサブセットのために)期待通り、動作は次のとおりです。

wget -q --show-progress --no-directories -r -N -l 1 ftp://user:[email protected]/subdir/ 

しかし、私が試してルートからミラーリングすると、タイムスタンプはウィンドウの外に出るようです。

答えて

0

答えは、wgetのタイムスタンプは時間を気にするだけではないことです。実際には、ファイルのサイズを最初に確認します。その場合は、のいずれかをという違いを再ダウンロードする価値があるとみなします。同じファイルの異なるバージョンを持つ複数のディレクトリの私のケースでは、新しいファイルがある場合、古いファイルをダウンロードします。古いファイルがある場合、新しいファイルがダウンロードされます。つまり、再帰的なダウンロードを実行すると、同じファイルが効果的にランダムなバージョンで複数回上書きされ、特定のファイルの最新バージョンを取得する可能性は非常に低くなります。

これは技術的にはwgetドキュメント(いくつかの場所ではなく他の場所でも)に言及されていますが、ユーザーの直感をひどく裏切ったようです。タイムスタンプはタイムスタンプとほとんど関係ありません。

関連する問題