2012-03-13 13 views
101

Estoy usando Wget para hacer solicitudes http a un nuevo servidor web. Estoy haciendo esto para calentar el caché de MySQL. No quiero guardar los archivos después de que se hayan servido.¿Cómo solicito un archivo pero no lo guardo con Wget?

wget -nv -do-not-save-file $url 

¿Puedo hacer algo como -do-not-save-file con wget?

+3

Este es un mejor pregunta para Super User o Unix.SE. –

+2

como desarrollador Quiero probar un servidor con wget y que esta pregunta está muy relacionada con el tema. Como la mejor respuesta en el tema obtuvo 142 votos positivos, por lo que esta pregunta se debe volver a habilitar como en el tema –

Respuesta

191

Uso q bandera para el modo silencioso, y decirle a wget para dar salida a la salida estándar con O- (mayúsculas o) y redirigir a /dev/null para descartar la salida:

wget -qO- $url &> /dev/null

> redirige la salida de la aplicación (en un archivo) si > va precedido de un signo & y, el shell redirecciona todas las salidas (error y normal) al archivo a la derecha de >. Si no especifica el signo &, entonces solo se redirige la salida normal.

./app &> file # redirect error and standard output to file 
./app > file # redirect standard output to file 
./app 2> file # redirect error output to file 

si el archivo es /dev/null entonces todo está descartado.

Esto funciona así, y más simple:

wget -O/dev/null -q $url 
+0

¿qué significa el signo y más que en este comando? ¿puedes simplemente canalizar la salida a/dev/null ... wget -qO- |/dev/null ...? –

+0

@ T.BrianJones, actualizado – perreal

+0

Uh, probé esto y no funcionó para mí. Por lo que descubrí, el ampersand debería venir después del símbolo mayor que. –

39

Curl hace que, por defecto sin ningún parámetro o banderas, yo lo uso para sus propósitos:

curl $url > /dev/null 2>&1 

Curl es más acerca de las corrientes y wget es más sobre copiar sitios basados ​​en this comparison.

+1

Frío, ¿qué significa 2> & 1? Me sale> pero ¿por qué el final? – apscience

+2

@gladoscc first '>/dev/null' redirects [std out] (http://en.wikipedia.org/wiki/Standard_streams#Standard_output_.28stdout.29) a/dev/null ('>/dev/null' es la abreviatura de '1>/dev/null'), la segunda redirecciona [std err] (http://en.wikipedia.org/wiki/Standard_streams#Standard_error_.28stderr.29) para que salga. –

+0

@apscience Solo para agregar. El descriptor de archivo para std out es 1. Shells asume std out cuando dejas el descriptor de un redireccionamiento. Entonces '> foo' se interpreta como' 1> foo'. Cuando '&' sigue un redireccionamiento, instruye al intérprete de comandos a redireccionar el anterior descriptor de archivo al _same output_ como el último. En este caso, '2> & 1' dice redirigir el descriptor de archivo 2 (std err) al mismo lugar que el descriptor de archivo 1 (std out). Como std out ya se redirigió a/dev/null, std err también se redirigirá allí. También puede escribir: '1>/dev/null 2>/dev/null' o' 2>/dev/null> & 2'. – ktbiz

30

Puede utilizar -O- (O mayúscula) para redirigir el contenido de la entrada estándar o en un archivo (incluso archivos especiales como /dev/null/dev/stderr/dev/stdout)

wget -O- http://yourdomain.com 

O:

wget -O- http://yourdomain.com > /dev/null 

O: (mismo resultado que el último comando)

wget -O/dev/null http://yourdomain.com 
+0

Thx, también funciona en Windows. – Pyjong

+0

Gracias, el directo a/dev/null fue inteligente, y por lo tanto la respuesta correcta: quiero el "resultado de las estadísticas", pero no los contenidos. – stolsvik

Cuestiones relacionadas