Obtenir md5 pendant wget

10

J'utilise wgetd'énormes fichiers (plus de 100 Go), puis je compare ma somme md5 à la somme publiée dans le référentiel. Croyez-le ou non, l' md5sumexécution d'un fichier de cette taille prend un certain temps, donc j'aimerais obtenir la somme en parallèle avec le téléchargement.

Quelle est la meilleure façon de procéder? Je ne vois pas d' wgetoption pour calculer MD5 pendant le téléchargement (étonnamment), donc je suppose que l'utilisation teeserait la voie à suivre?!

Fixee
la source
Est-ce possible? Je suis sûr que vous avez besoin de l'intégralité du binaire pour vérifier le hachage. Je doute que même le diviser en étapes (c'est-à-dire le hachage lors du téléchargement) serait possible car vous pourriez ne pas recevoir le fichier dans un ordre séquentiel. Quoi qu'il en soit, je serais heureux de voir si quelqu'un a une solution.
n0pe
@MaxMackie: C'est certainement possible: étant donné que je télécharge l'intégralité du fichier, wget pourrait théoriquement l'exécuter via MD5. Ce n'est pas le cas.
Fixee

Réponses:

11

En fait, cela pourrait être possible:

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

Cependant, cela suppose que vous avez préalablement le hachage dans un fichier.

n0pe
la source
1
Cela semble bien, et je ne vois pas comment cela suppose que le "a dans un fichier au préalable". Il génère simplement la somme au fur et à mesure et l'écrit dans un fichier que vous pouvez utiliser pour comparer plus tard. Le seul hic pourrait être la surcharge de mémoire.
Caleb
2
@Caleb Quelle surcharge de mémoire? md5sum(et tout autre algorithme de hachage commun tel que la famille SHA) fonctionne en mémoire constante. Ils sont conçus pour fonctionner sur des flux.
Gilles 'SO- arrête d'être méchant'
avec un supplémentaire awkà la fin, vous pouvez supprimer automatiquement le `-` a la fin. wget -O - "https://example.org/myFile.jpg" | tee file | md5sum | awk '{print $1}' > md5.txt
Max