Récupérer une liste de fichiers avec des Wget tournants en parallèle
Si vous voulez télécharger une liste d’URL en lançant d’un seul coup plusieurs process wget, voici la ligne de commande magique :
cat liste-url.txt | xargs -n 1 -P 10 wget
(Alors que la commande
wget -c -i liste-url.txt
récupérera les fichiers les uns à la suite des autres)
Ce qui est intéressant ici, c’est l’utilisation de ‘xargs’ qui permet d’éviter les listes d’arguments trop longues (voir ici pour plus d’explications) et dans ce cas, récupère chacune des urls sorties par la commande cat et les balance à wget avec les paramètre -n et -P
- -n 1 : ça veut dire que le nombre maximum de paramètre envoyé est de 1
- -P 10 : ça veut dire que wget sera lancé 10 fois (en parallèle donc)
Cette commande est équivalente à celle-ci qui est un poil plus longue à écrire dans un script ;-)
for i in `cat liste-url.txt` do wget -c $i done
Ça peut toujours dépanner…