O trabalho do Cron não está sendo registrado?

0

Ubuntu Server 14.04 LTS, e eu tenho o seguinte em um crontab:

00 06 * * 1-5 /usr/local/bin/scribe /etc/local/scribe.1.conf 1&2>> /var/log/local/scribe.1.log
00 15 * * 1-5 killall scribe; sleep 10; /usr/local/bin/scribe /etc/local/scribe.1.conf 1&2>> /var/log/local/scribe.1.log
15 16 * * 1-5 killall scribe

Minha intenção aqui é executar um programa às 6 da manhã, matá-lo às 3 da tarde e re-executá-lo às 3:00:10 pm. O que estou vendo é o arquivo de log sendo criado, mas permanecendo vazio e nunca sendo gravado. O usuário cujo crontab este é tem permissões de gravação para o diretório de log, então não tenho certeza porque o arquivo de log permanece vazio. Eu tenho que assumir que eu tenha cometido um erro de sintaxe ou algo assim.

    
por musasabi 06.07.2016 / 21:01

1 resposta

4

O ... 1&2>> ... é visualizado como ... 1& e, em seguida, 2>> ... .

Em outras palavras, ele inicia a primeira parte em segundo plano, cria um arquivo de log e tenta iniciar 2, o que certamente não faz nada. Portanto, nenhuma saída é enviada para esse arquivo de log.

Eu geralmente faço algo como 2>&1 para enviar stderr para stdout. Você precisa definir o stdout primeiro se quiser que os erros e a saída padrão sejam enviados para o mesmo arquivo. Então, algo como >>blah.log 2>&1 .

    
por 06.07.2016 / 21:16

Tags