
Alguém pode me explicar qual é o significado de "2>&1" fazendo aqui no cron job abaixo
0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1
Responder1
Isso significa que stderr
( 2
- contendo mensagens de erro do comando ou script executado) é redirecionado ( >&
) para stdout
( 1
- a saída do comando) e que este último está sendo redirecionado para /dev/null
(o dispositivo nulo).
Desta forma você pode suprimir todas as mensagens que possam ser emitidas pelo comando executado. No cron, isso geralmente é feito para evitar o envio de spam por muitas mensagens irrelevantes de scripts de serviço. No entanto, tenha cuidado com isso, pois algumas mensagens podem ser importantes.
Mais informações sobre redirecionamentos de saída podem ser encontradas em The Linux Documentation Projectaquieaqui. O dispositivo nulo é descritoaqui.
Responder2
Gostaria apenas de expandir um pouco a resposta de @digijay, explicando não "o > /dev/null 2>&1
que" mas "por que está lá".
1.As ações do Cron gravam dados apropriados em diferentes arquivos do sistema. Por exemplo,destinos populares para registrar erros do cronincluir /var/log/cron
, /var/log/messages
e /var/log/syslog
.
2.Por padrão, os cron jobs enviam um email para a conta do usuário que executa o cronjob.
Então, para evitar casos1e2(você não quer ver nenhum registro de informações/erros, nem receber e-mails do cron, você só quer que o cron funcione silenciosamente), você deve redirecionar stderr
e stdout
para /dev/null
.