Memperoleh md5 saat wget

10

Saya sedang wgetfile besar (lebih dari 100GB) dan kemudian membandingkan md5sum saya dengan jumlah yang diposting di repositori. Percaya atau tidak, md5sumperlu waktu tidak berjalan untuk menjalankan file sebesar ini, jadi saya ingin mendapatkan jumlah secara paralel dengan unduhan.

Apa cara terbaik untuk melakukan ini? Saya tidak melihat wgetopsi untuk menghitung MD5 selama pengunduhan (mengejutkan) jadi saya kira menggunakan teeakan menjadi cara untuk pergi ?!

Fixee
sumber
Apakah ini mungkin? Saya cukup yakin Anda perlu seluruh biner untuk memeriksa hash. Saya ragu bahkan memecahnya menjadi langkah-langkah (yaitu hash seperti yang diunduh) akan mungkin terlihat karena Anda mungkin tidak menerima file secara berurutan. Either way, saya akan senang melihat apakah seseorang memiliki solusi.
n0pe
@ Maxmackie: Pasti mungkin: karena saya mengunduh seluruh file, wget secara teoritis bisa menjalankannya melalui MD5. Unf, tidak.
Fixee

Jawaban:

11

Sebenarnya, ini dimungkinkan:

wget -O - http://example.com/file | tee file | md5sum > file.md5

Namun, ini mengasumsikan Anda memiliki hash dalam file sebelumnya.

n0pe
sumber
1
Ini terlihat baik-baik saja, dan saya tidak melihat bagaimana ia berasumsi tentang memiliki "sudah ada dalam file sebelumnya". Itu hanya menghasilkan jumlah saat Anda melanjutkan dan menulisnya ke file yang dapat Anda gunakan untuk membandingkan nanti. Satu-satunya tangkapan mungkin memori overhead.
Caleb
2
@ Caleb Apa overhead memori? md5sum(dan algoritma hash umum lainnya seperti keluarga SHA) beroperasi dalam memori konstan. Mereka dirancang untuk bekerja di stream.
Gilles 'SANGAT berhenti menjadi jahat'
dengan tambahan awkdi akhir Anda dapat menghapus a-a secara otomatis. wget -O - "https://example.org/myFile.jpg" | tee file | md5sum | awk '{print $1}' > md5.txt
Maks.