J'utilise le programme wget
, mais je veux qu'il n'enregistre pas le fichier html que je télécharge. Je veux qu'il soit jeté après sa réception. Comment je fais ça?
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é.
Si vous ne souhaitez pas enregistrer le fichier et que vous avez accepté la solution de téléchargement de la page dans /dev/null
, Je suppose que vous utilisez wget pour ne pas obtenir et analyser le contenu de la page .
Si votre véritable besoin est de déclencher une action à distance, vérifiez que la page existe et ainsi de suite, je pense qu'il vaut mieux éviter de télécharger la page de corps html du tout.
Jouez avec les options wget
afin de récupérer uniquement ce dont vous avez vraiment besoin, c'est-à-dire les en-têtes http, l'état de la demande, etc.
en supposant que vous devez vérifier que la page est correcte (c'est-à-dire que le statut renvoyé est 200), vous pouvez effectuer les opérations suivantes:
wget --no-cache --spider http://your.server.tld/your/page.html
si vous souhaitez analyser les en-têtes renvoyés par le serveur, procédez comme suit:
wget --no-cache -S http://your.server.tld/your/page.html
Voir page de manuel wget pour d'autres options avec lesquelles jouer.
Voir aussi lynx
, comme alternative à wget.
$ wget http://www.somewebsite.com -O foo.html --delete-after
Si vous souhaitez également imprimer dans la console le résultat que vous pouvez faire:
wget -qO- http://www.example.com
Une autre alternative consiste à utiliser un outil comme curl
, qui par défaut renvoie le contenu distant vers stdout
au lieu de l'enregistrer dans un fichier.
Découvrez l'option "-spider". Je l'utilise pour m'assurer que mes sites Web sont en place et m'envoyer un e-mail s'ils ne le sont pas. Ceci est une entrée typique de mon crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Pour une boîte * NIX et en utilisant wget
, je suggère de sauter l'écriture dans un fichier. J'ai remarqué sur ma boîte Ubuntu 10.04 que wget -O /dev/null
a provoqué l'annulation des téléchargements par wget après le premier téléchargement.
J'ai également remarqué que wget -O real-file
fait oublier à wget les liens réels sur la page. Il insiste sur un index.html
être présent sur chaque page. Ces pages peuvent ne pas toujours être présentes et wget ne se souviendra pas des liens qu'il a vus précédemment.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Notez qu'il n'y a pas de -O file
option. wget écrira dans le répertoire $ PWD. Dans ce cas, il s'agit d'un système de fichiers RAM uniquement tmpfs . L'écriture ici devrait contourner le désabonnement du disque (en fonction de l'espace d'échange) ET garder une trace de tous les liens. Cela devrait explorer correctement l'ensemble du site Web.
Après, bien sûr,
rm --recursive --force /dev/shm/1/*
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.
Selon le document d'aide (wget -h), vous pouvez utiliser l'option --spider pour ignorer le téléchargement (version 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.