Xargs et Wget cessent de fonctionner après une heure


8

Exécution d'un script avec Cygwin sur Windows XP avec double cœur et 4 Go de RAM

cat url_list.txt | xargs -P50 wget -i

J'essaie de parcourir 4 Go d' URL à télécharger (environ 43 millions)

Fonctionne bien pendant environ la première heure, puis le shell Bash et les téléchargements s'arrêtent même si ce n'est que 2% via la liste d'URL.

Des idées sur ce qui pourrait être faux?

Quelle est la meilleure façon de déboguer pourquoi cela s'arrête après une heure?

Réponses:


2

Il est possible que wget prenne du temps pour télécharger certains fichiers. Y a-t-il des processus wget / xargs en mémoire pendant la période où il semble être bloqué? Si oui, s'agit-il des 50 processus complets que vous avez alloués avec l'indicateur -P50 à xargs, ou a-t-il d'une manière ou d'une autre dépassé ce nombre ou moins que ce nombre et aucune nouvelle instance n'est générée correctement? Bien qu'il soit exécuté sous cygwin, consultez la liste des processus dans Windows lui-même, car chaque téléchargement wget devrait lancer une instance dans le gestionnaire de tâches.


0

Je suppose que les URL sont destinées à différents sites. Dans ce cas, vous risquez de toucher des sites qui sont lents à répondre et qui bloqueront l'un de vos wgets. Puisque vous en avez 50 en cours d'exécution, vous devrez frapper 50 de ces sites avant que rien ne se passe.

Pour voir si c'est le cas, essayez de tuer l'un des wgets suspendus et voyez si celui-ci est alors décollé.

Pour ignorer les URL bloquées, vous pouvez donner un délai d'expiration à wget:

wget -T 60
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.