Uzyskiwanie md5 podczas wget


10

Mam wgetduże pliki (ponad 100 GB), a następnie porównuję sumę md5 z sumą zaksięgowaną w repozytorium. Wierzcie lub nie, md5sumuruchomienie nieoczekiwanego czasu na pliku o tym rozmiarze, więc chciałbym uzyskać sumę równolegle z pobieraniem.

Jak najlepiej to zrobić? Nie widzę wgetopcji, aby obliczyć MD5 podczas pobierania (co zaskakujące), więc myślę, że użycie teebyłoby dobrym rozwiązaniem ?!


czy to możliwe? Jestem pewien, że potrzebujesz całego pliku binarnego, aby sprawdzić skrót. Wątpię, by nawet rozbicie go na etapy (tj. Hasz podczas pobierania) byłoby możliwe, ponieważ plik nie był odbierany w kolejności sekwencyjnej. Tak czy inaczej, z przyjemnością sprawdzę, czy ktoś ma rozwiązanie.
n0pe

@ MaxMackie: Jest to na pewno możliwe: ponieważ pobieram cały plik, wget mógłby teoretycznie uruchomić go przez MD5. O ile nie.
Fixee

Odpowiedzi:


12

W rzeczywistości może to być możliwe:

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

Zakłada się jednak, że masz wcześniej skrót w pliku.


1
Wygląda to dobrze i nie rozumiem, jak zakłada cokolwiek o tym, że „ma wcześniej w pliku”. Po prostu generuje sumę w miarę postępów i zapisuje ją w pliku, którego można użyć do późniejszego porównania. Jedynym haczykiem może być narzut pamięci.
Caleb,

2
@Caleb Jaki narzut pamięci? md5sum(i każdy inny popularny algorytm skrótu, taki jak rodzina SHA) działa w stałej pamięci. Są zaprojektowane do pracy na strumieniach.
Gilles 'SO - przestań być zły'

z dodatkowym awkna końcu możesz automatycznie usunąć `-` a koniec. wget -O - "https://example.org/myFile.jpg" | tee file | md5sum | awk '{print $1}' > md5.txt
Maks.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.