再起動後もwgetの終了ステータスを信頼できますか?

再起動後もwgetの終了ステータスを信頼できますか?

wget次のコマンドを使用して作業を開始しました。

urls=(https://example.com/file1 https://example.com/file2
      https://example.com/file3 https://example.com/file4)
for url in ${urls[@]}; do 
  wget "$url" 2>/dev/null && echo "$url done" >> progress & 
done

ファイルはそれぞれ30〜40G程度だったので、一晩中実行しました。今日もう一度確認してみると次のようになります。

-rw-rw-r-- 1 a staff  13M Mar 18 15:11 file1
-rw-rw-r-- 1 a staff  18M Mar 18 15:12 file1.1
-rw-rw-r-- 1 a staff  38G Mar 18 21:10 file1.2
-rw-rw-r-- 1 a staff  12M Mar 18 15:12 file2
-rw-rw-r-- 1 a staff  44G Mar 18 21:35 file2.1
-rw-rw-r-- 1 a staff  446 Mar 18 21:35 progress
-rw-rw-r-- 1 a staff  40G Mar 18 21:24 file3.1
-rw-rw-r-- 1 a staff 4.4M Mar 18 15:12 file3
-rw-rw-r-- 1 a staff 6.5M Mar 18 15:12 file4
-rw-rw-r-- 1 a staff  42G Mar 18 21:27 file4.1

つまり、filename.Nサイズは適しているようですが、filenameファイル自体が小さすぎるファイルがいくつかあります。このprogressファイルは、すべてのファイルが正常にダウンロードされたことを報告します。

https://example.com/file1 done 
https://example.com/file2 done 
https://example.com/file3 done 
https://example.com/file4 done 

filename.N私はこのファイルを提供した人に各ファイルのmd5sumを提供し、そのファイルが実際に完全なコピーであることを確認できるように依頼しました。また、実際に問題のファイルの完全なコピーであると安全に想定できるfilename.N最大値は何ですか?N

wgetプロセスが何度も再起動されたため、.Nこのファイルがあるようですが、ファイルが&& echo機能しているようだとは、ファイルが正しくダウンロードされたことを意味しますか、それともダウンロードが正しく行われたにもかかわらず実行された可能&&性がありますか?不完全なファイルですか?

ベストアンサー1

サーバーから送信されたヘッダー(--server-response)が表示され、ヘッダーに含まれている場合、Content-Lengthwgetはそのバイト数を受信したときにのみ終了します。これはargのマニュアルページに記載されています--ignore-length。しかし、md5や他の合計は常に良いアイデアです!

おすすめ記事