ダウンロードしたファイルが完全または破損していることを確認するコマンドライン方法はありますか?

ダウンロードしたファイルが完全または破損していることを確認するコマンドライン方法はありますか?

ファイルのダウンロードと操作に関連するスクリプトを作成していますが、ファイルを処理する前にファイルが不完全でないことを確認したい(たとえば、切断されたため)。

ベストアンサー1

ダウンロードしたファイルの整合性を確認する最も一般的な方法は、MD5チェックサムを使用することです。これは、ダウンロードしているサイトが実際にそのファイルのMD5チェックサムを公開していると仮定します。独自のダウンロードファイルのチェックサムを作成し、公開されたチェックサムと比較してMD5チェックサムを確認できます。同じ場合は、ダウンロードしたファイルが完全で改ざんされていません。

ダウンロードしたファイルを変更したくない場合は、チェックサムを事前に計算してスクリプトにハードコードすることができます。ただし、ファイルが更新されると、検証は失敗します。

ファイルのMD5チェックサムを作成するには、を実行しますmd5sum myFile。 wgetの場合、特にダウンロードするファイルが大きい場合は、このコマンドが役に立ちます。

wget -O - http://example.com/myFile | tee myFile | md5sum > MD5SUM

これにより、ダウンロード時に「myFile」のチェックサムが生成され、MD5SUMファイルに保存され、時間を節約できます。

接続が失われた場合は、wgetの終了コードを確認するのが最善の方法だと思います。エラーなしでダウンロードが成功すると、wgetはを返します0。他に何かが何か間違っていることを示します。 「終了ステータス」セクションを確認してくださいman wget

おすすめ記事