Estoy usando el wgetprograma, pero quiero que no guarde el archivo html que estoy descargando. Quiero que se descarte después de que se reciba. ¿Cómo puedo hacer eso?
Esto no guarda la página, pero me envía un correo electrónico. ¿También es posible deshabilitar el correo electrónico?
trante
32
Si no desea guardar el archivo y ha aceptado la solución de descargar la página /dev/null, supongo que está utilizando wget para no obtener y analizar el contenido de la página .
Si su verdadera necesidad es activar alguna acción remota, verifique que la página exista y así sucesivamente, creo que sería mejor evitar descargar la página del cuerpo html.
Juegue con las wgetopciones para recuperar solo lo que realmente necesita, es decir, encabezados http, estado de la solicitud, etc.
asumiendo que necesita verificar que la página está bien (es decir, el estado devuelto es 200) puede hacer lo siguiente:
Estoy confundido. --no-cacheen la página de manual dice que hace que wget "envíe al servidor remoto una directiva apropiada ('Pragma: no-cache') para obtener el archivo del servicio remoto"
Gaia
Le dice al servidor que su cliente no quiere una versión en caché del archivo ... queremos obtener la última versión del recurso que estamos solicitando
Me gusta más esta opción. Me deja ver lo que se obtiene pero no lo guarda. Los interruptores están específicamente en qmodo silencioso, (no genera progreso ni otra información) y O-(escribe el documento recuperado en la consola).
Octopus
9
Otra alternativa es utilizar una herramienta como curl, que por defecto genera el contenido remoto en stdoutlugar de guardarlo en un archivo.
Echa un vistazo a la opción "-spider". Lo uso para asegurarme de que mis sitios web están activos y enviarme un correo electrónico si no lo están. Esta es una entrada típica de mi 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 necesita rastrear un sitio web con wget y desea minimizar la pérdida de disco ...
Para un cuadro * NIX y uso wget, sugiero omitir la escritura en un archivo. Noté en mi cuadro Ubuntu 10.04 que wget -O /dev/nullhizo que wget cancelara las descargas después de la primera descarga.
También noté que wget -O real-filehace que wget olvide los enlaces reales en la página. Insiste en index.htmlque esté presente en cada página. Es posible que dichas páginas no siempre estén presentes y wget no recordará los enlaces que ha visto anteriormente.
Para rastrear sin escribir en el disco, lo mejor que se me ocurrió es lo siguiente
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Tenga en cuenta que no hay -O fileopción. wget escribirá en el directorio $ PWD. En este caso, es un sistema de archivos tmpfs solo RAM . Escribir aquí debería omitir la rotación del disco (dependiendo del espacio de intercambio) Y realizar un seguimiento de todos los enlaces. Esto debería rastrear todo el sitio web con éxito.
/dev/null
Funcionaría?Respuestas:
Puede redirigir la salida de wget a / dev / null (o NUL en Windows):
El archivo no se escribirá en el disco, pero se descargará.
fuente
Si no desea guardar el archivo y ha aceptado la solución de descargar la página
/dev/null
, supongo que está utilizando wget para no obtener y analizar el contenido de la página .Si su verdadera necesidad es activar alguna acción remota, verifique que la página exista y así sucesivamente, creo que sería mejor evitar descargar la página del cuerpo html.
Juegue con las
wget
opciones para recuperar solo lo que realmente necesita, es decir, encabezados http, estado de la solicitud, etc.asumiendo que necesita verificar que la página está bien (es decir, el estado devuelto es 200) puede hacer lo siguiente:
si desea analizar los encabezados devueltos por el servidor, haga lo siguiente:
Consulte la página de manual de wget para obtener más opciones para jugar.
Ver
lynx
también, como una alternativa a wget.fuente
--no-cache
en la página de manual dice que hace que wget "envíe al servidor remoto una directiva apropiada ('Pragma: no-cache') para obtener el archivo del servicio remoto"$ wget http://www.somewebsite.com -O foo.html --delete-after
fuente
--delete-after
opción es la opción cuando tiene que descargar de forma recursiva pero desea descartar el contenido real.-O /dev/null
En caso de que también desee imprimir en la consola el resultado que puede hacer:
fuente
q
modo silencioso, (no genera progreso ni otra información) yO-
(escribe el documento recuperado en la consola).Otra alternativa es utilizar una herramienta como
curl
, que por defecto genera el contenido remoto enstdout
lugar de guardarlo en un archivo.fuente
Echa un vistazo a la opción "-spider". Lo uso para asegurarme de que mis sitios web están activos y enviarme un correo electrónico si no lo están. Esta es una entrada típica de mi crontab:
fuente
Si necesita rastrear un sitio web con wget y desea minimizar la pérdida de disco ...
Para un cuadro * NIX y uso
wget
, sugiero omitir la escritura en un archivo. Noté en mi cuadro Ubuntu 10.04 quewget -O /dev/null
hizo que wget cancelara las descargas después de la primera descarga.También noté que
wget -O real-file
hace que wget olvide los enlaces reales en la página. Insiste enindex.html
que esté presente en cada página. Es posible que dichas páginas no siempre estén presentes y wget no recordará los enlaces que ha visto anteriormente.Para rastrear sin escribir en el disco, lo mejor que se me ocurrió es lo siguiente
Tenga en cuenta que no hay
-O file
opción. wget escribirá en el directorio $ PWD. En este caso, es un sistema de archivos tmpfs solo RAM . Escribir aquí debería omitir la rotación del disco (dependiendo del espacio de intercambio) Y realizar un seguimiento de todos los enlaces. Esto debería rastrear todo el sitio web con éxito.Después, por supuesto,
fuente
Use la opción --delete-after, que elimina el archivo después de descargarlo.
Editar: Vaya, acabo de notar que ya se ha respondido.
fuente
Según el documento de ayuda (wget -h), puede usar la opción --spider para omitir la descarga (versión 1.14).
fuente