Sto usando il wget
programma, ma voglio che non salvi il file html che sto scaricando. Voglio che venga scartato dopo che è stato ricevuto. Come lo faccio?
Sto usando il wget
programma, ma voglio che non salvi il file html che sto scaricando. Voglio che venga scartato dopo che è stato ricevuto. Come lo faccio?
Risposte:
Puoi reindirizzare l'output di wget su / dev / null (o NUL su Windows):
wget http://www.example.com -O /dev/null
Il file non verrà scritto sul disco, ma verrà scaricato.
Se non vuoi salvare il file e hai accettato la soluzione di scaricare la pagina /dev/null
, suppongo che stai usando wget per non ottenere e analizzare il contenuto della pagina .
Se la tua reale necessità è di innescare qualche azione remota, controlla che la pagina esista e così via penso che sarebbe meglio evitare di scaricare la pagina del corpo HTML.
Gioca con le wget
opzioni per recuperare solo ciò di cui hai veramente bisogno, ad esempio intestazioni http, stato delle richieste, ecc.
supponendo che sia necessario verificare che la pagina sia ok (ovvero, lo stato restituito è 200) è possibile effettuare le seguenti operazioni:
wget --no-cache --spider http://your.server.tld/your/page.html
se si desidera analizzare le intestazioni restituite dal server, procedere come segue:
wget --no-cache -S http://your.server.tld/your/page.html
Vedi la pagina man di wget per ulteriori opzioni con cui giocare.
Vedi lynx
anche, in alternativa a wget.
--no-cache
nella pagina man dice che fa sì che wget "invii al server remoto una direttiva appropriata ('Pragma: no-cache') per ottenere il file dal servizio remoto"
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-after
opzione è la scelta quando devi scaricare ricorsivamente ma vuoi scartare il contenuto reale.
-O /dev/null
Nel caso in cui si desideri stampare anche nella console, il risultato è possibile:
wget -qO- http://www.example.com
q
modalità silenziosa, (non genera avanzamento e altre informazioni) e O-
(scrive il documento recuperato sulla console).
Dai un'occhiata all'opzione "-spider". Lo uso per assicurarmi che i miei siti Web siano attivi e, in caso contrario, mi inviano un'email. Questa è una voce tipica dal mio crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Per una casella * NIX e per l'utilizzo wget
, suggerisco di saltare la scrittura su un file. Ho notato sulla mia casella Ubuntu 10.04 che ha wget -O /dev/null
causato wget per interrompere i download dopo il primo download.
Ho anche notato che wget -O real-file
fa sì che wget dimentichi i collegamenti effettivi sulla pagina. Insiste index.html
affinché sia presente in ogni pagina. Tali pagine potrebbero non essere sempre presenti e wget non ricorderà i collegamenti che ha visto in precedenza.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Si noti che non esiste alcuna -O file
opzione. wget scriverà nella directory $ PWD. In questo caso si tratta di un file system tmpfs solo RAM . La scrittura qui dovrebbe bypassare lo sfasamento del disco (a seconda dello spazio di scambio) E tenere traccia di tutti i collegamenti. Questo dovrebbe eseguire la scansione dell'intero sito Web correttamente.
Dopo, ovviamente,
rm --recursive --force /dev/shm/1/*
Utilizzare l'opzione --delete-after, che elimina il file dopo il download.
Modifica: Oops, ho appena notato che è già stata data una risposta.
Secondo il documento di aiuto (wget -h), puoi usare l'opzione --spider per saltare il download (versione 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.
/dev/null
cosa funzionerebbe?