J'utilise le wgetprogramme, mais je ne veux pas qu'il enregistre le fichier html que je télécharge. Je veux qu'il soit jeté après sa réception. Comment je fais ça?
Je suis nouveau sur Linux - La /dev/nullchose fonctionnerait-elle?
Ram Rachum
2
Alors, quel est le point de le télécharger alors?
Anonyme
1
@Anonymous Je suppose que vous devez stresser le serveur distant .. Si vous ne vous souciez pas du contenu .., j'utiliserais probablement apachebench (ab) cependant.
Tom O'Connor
Réponses:
83
Vous pouvez rediriger la sortie de wget vers / dev / null (ou NUL sous Windows):
wget http://www.example.com -O /dev/null
Le fichier ne sera pas écrit sur le disque, mais il sera téléchargé.
Cela n'enregistre pas la page, mais m'envoie un courrier électronique. Est-il également possible de désactiver l'envoi de courrier électronique?
Trante
32
Si vous ne souhaitez pas enregistrer le fichier et que vous avez accepté la solution de téléchargement de la page /dev/null, je suppose que vous utilisez wget pour ne pas obtenir et analyser le contenu de la page .
Si votre besoin réel est de déclencher une action à distance, vérifiez que la page existe, etc. Je pense qu’il serait préférable d’éviter de télécharger la page de corps html.
Jouez avec les wgetoptions afin de récupérer uniquement ce dont vous avez vraiment besoin, à savoir les en-têtes http, l'état de la demande, etc.
en supposant que vous deviez vérifier que la page est correcte (le statut retourné est 200), vous pouvez effectuer les opérations suivantes:
Je suis confus. --no-cachedans la page de manuel, il est indiqué que wget "envoie au serveur distant une directive appropriée (" Pragma: no-cache ") pour obtenir le fichier du service distant"
Gaia
Il dit au serveur que votre client ne veut pas de version en cache du fichier .. nous voulons obtenir la toute dernière version de la ressource pour laquelle nous
Merci beaucoup. L' --delete-afteroption est le choix lorsque vous devez télécharger de manière récursive mais que vous souhaitez supprimer le contenu réel.
egelev
+1 pour moi, la commande est intuitive - en un coup d'œil, je peux comprendre plus rapidement ce qui va se passer que-O /dev/null
fusion27
15
Si vous souhaitez également imprimer dans la console le résultat que vous pouvez obtenir:
J'aime mieux cette option. Cela me permet de voir ce que ça donne mais ne le sauve pas. Les commutateurs sont spécifiquement en qmode silencieux (il n’affiche pas la progression ni d’autres informations), et O-(écrit le document récupéré sur la console).
Octopus
9
Une autre alternative consiste à utiliser un outil du type curlqui, par défaut, renvoie le contenu distant au stdoutlieu de l'enregistrer dans un fichier.
Découvrez l'option "-spider". Je l'utilise pour m'assurer que mes sites Web sont en ligne et m'envoyer un courrier électronique s'ils ne le sont pas. Voici une entrée typique de ma crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Si vous avez besoin d'explorer un site Web à l'aide de wget et que vous souhaitez réduire au minimum le roulement du disque ...
Pour une boîte * NIX et son utilisation wget, je suggère de ne pas écrire dans un fichier. J'ai remarqué sur ma boîte Ubuntu 10.04 que wget -O /dev/nullwget avait interrompu les téléchargements après le premier téléchargement.
J'ai également remarqué que wget -O real-filewget oublie les liens réels sur la page. Il insiste index.htmlpour être présent sur chaque page. De telles pages peuvent ne pas toujours être présentes et wget ne se souviendra pas des liens qu’il a vus précédemment.
Pour explorer sans écrire sur le disque, voici ce que je propose de mieux
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Notez qu'il n'y a pas d' -O fileoption. wget écrira dans le répertoire $ PWD. Dans ce cas, il s’agit d’un système de fichiers tmpfs réservé à la RAM . Ecrire ici devrait éviter le désabonnement du disque (selon l’espace de permutation) ET garder une trace de tous les liens. Cela devrait explorer l'ensemble du site Web avec succès.
/dev/null
chose fonctionnerait-elle?Réponses:
Vous pouvez rediriger la sortie de wget vers / dev / null (ou NUL sous Windows):
Le fichier ne sera pas écrit sur le disque, mais il sera téléchargé.
la source
Si vous ne souhaitez pas enregistrer le fichier et que vous avez accepté la solution de téléchargement de la page
/dev/null
, je suppose que vous utilisez wget pour ne pas obtenir et analyser le contenu de la page .Si votre besoin réel est de déclencher une action à distance, vérifiez que la page existe, etc. Je pense qu’il serait préférable d’éviter de télécharger la page de corps html.
Jouez avec les
wget
options afin de récupérer uniquement ce dont vous avez vraiment besoin, à savoir les en-têtes http, l'état de la demande, etc.en supposant que vous deviez vérifier que la page est correcte (le statut retourné est 200), vous pouvez effectuer les opérations suivantes:
Si vous souhaitez analyser les en-têtes renvoyés par le serveur, procédez comme suit:
Reportez-vous à la page de manuel wget pour connaître les autres options pour jouer.
Voir
lynx
aussi, comme alternative à wget.la source
--no-cache
dans la page de manuel, il est indiqué que wget "envoie au serveur distant une directive appropriée (" Pragma: no-cache ") pour obtenir le fichier du service distant"$ wget http://www.somewebsite.com -O foo.html --delete-after
la source
--delete-after
option est le choix lorsque vous devez télécharger de manière récursive mais que vous souhaitez supprimer le contenu réel.-O /dev/null
Si vous souhaitez également imprimer dans la console le résultat que vous pouvez obtenir:
la source
q
mode silencieux (il n’affiche pas la progression ni d’autres informations), etO-
(écrit le document récupéré sur la console).Une autre alternative consiste à utiliser un outil du type
curl
qui, par défaut, renvoie le contenu distant austdout
lieu de l'enregistrer dans un fichier.la source
Découvrez l'option "-spider". Je l'utilise pour m'assurer que mes sites Web sont en ligne et m'envoyer un courrier électronique s'ils ne le sont pas. Voici une entrée typique de ma crontab:
la source
Si vous avez besoin d'explorer un site Web à l'aide de wget et que vous souhaitez réduire au minimum le roulement du disque ...
Pour une boîte * NIX et son utilisation
wget
, je suggère de ne pas écrire dans un fichier. J'ai remarqué sur ma boîte Ubuntu 10.04 quewget -O /dev/null
wget avait interrompu les téléchargements après le premier téléchargement.J'ai également remarqué que
wget -O real-file
wget oublie les liens réels sur la page. Il insisteindex.html
pour être présent sur chaque page. De telles pages peuvent ne pas toujours être présentes et wget ne se souviendra pas des liens qu’il a vus précédemment.Pour explorer sans écrire sur le disque, voici ce que je propose de mieux
Notez qu'il n'y a pas d'
-O file
option. wget écrira dans le répertoire $ PWD. Dans ce cas, il s’agit d’un système de fichiers tmpfs réservé à la RAM . Ecrire ici devrait éviter le désabonnement du disque (selon l’espace de permutation) ET garder une trace de tous les liens. Cela devrait explorer l'ensemble du site Web avec succès.Après, bien sûr,
la source
Utilisez l'option --delete-after, qui supprime le fichier après son téléchargement.
Edit: Oups, je viens de remarquer que cela a déjà été répondu.
la source
Selon la documentation d'aide (wget -h), vous pouvez utiliser l'option --spider pour ignorer le téléchargement (version 1.14).
la source