
¿Alguien puede explicarme cuál es el significado de "2>&1" aquí en el siguiente trabajo cron?
0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1
Respuesta1
Significa que stderr
( 2
- que contiene mensajes de error del comando o script ejecutado) se redirige ( >&
) a stdout
( 1
- la salida del comando) y que este último se redirige a /dev/null
(el dispositivo nulo).
De esta manera puede suprimir todos los mensajes que pueda emitir el comando ejecutado. En cron, esto se hace a menudo para evitar recibir spam con muchos mensajes irrelevantes de scripts de servicio. Sin embargo, tenga cuidado con esto ya que algunos mensajes pueden ser importantes.
Puede encontrar más información sobre redirecciones de salida en The Linux Documentation Projectaquíyaquí. El dispositivo nulo se describeaquí.
Respuesta2
Solo me gustaría ampliar un poco la respuesta de @digijay, explicando que no "Que > /dev/null 2>&1
hace" pero "por qué está ahí".
1.Las acciones cron escriben datos apropiados en diferentes archivos del sistema. Por ejemplo,Destinos populares para registrar errores cronincluyen /var/log/cron
, /var/log/messages
y /var/log/syslog
.
2.De forma predeterminada, cron jobs envía un correo electrónico a la cuenta de usuario que ejecuta el cronjob.
Entonces, para evitar casos1y2(no desea ver ninguna información/registros de errores, ni recibir correos electrónicos de cron, solo desea que cron funcione en silencio), debe redirigir stderr
y stdout
a /dev/null
.