Por exemplo, eu posso registrar stderr
um script desta maneira:
* * * * * run_script.sh > /var/log.txt 2>&1
Mas quero registrar stderr
todos os scripts no meu crontab. Posso anexar > /var/log.txt 2>&1
a todos os scripts, mas não é bom se eu tiver centenas de scripts cron
. Existe outra maneira mais simples de fazer isso?
fonte
Como ele usa correio local, você realmente não precisa configurar nada, ou talvez apenas instalar o mailx se ele ainda não estiver aqui. Cron lhe enviará a saída, você pode salvar o correio em um arquivo e fazer muitas coisas a partir daí. Tentar modificar a maneira como o cron funciona para atender diretamente às suas necessidades não é o caminho a seguir. Se você não acha, basta corrigir e recompilar o cron, chame-o de my_cron e use-o em vez de cron. E esteja preparado para manter seu my_cron atualizado e reconstruí-lo com frequência.
Adicione isso no início de todos os seus scripts para registrar tudo e parar no primeiro erro
fonte
> /var/log/YOUR_LOG_FILE 2>&1
ou seja, primeiro redirecione o stdout para um arquivo e só depois redirecione o stderr para o stdout (que agora aponta para o arquivo).O script de Ryan Ye em /programming//a/7145618/20774 também é útil para isso, embora faça stdout e stderr.
fonte