Todos sabemos que a maneira correta de lidar com a saída de tarefas cron é redirecioná-la para um arquivo:
0 * * * * /bin/date >> /var/log/date.log 2>&1
No entanto, às vezes os administradores são preguiçosos, esquecem ou ignoram e não colocam esses redirecionamentos; nesse caso, a saída do trabalho é enviada para $ MAILTO ou para o usuário ou raiz proprietário. Em algumas das caixas que eu gerencio, o correio está desabilitado, portanto essa saída entra em um buraco negro. O que eu queria saber é: existe alguma maneira de dizer ao cron para pegar qualquer saída do trabalho e, em vez de enviá-lo, jogá-lo em um arquivo de log abrangente em algum lugar? Estou usando o Ubuntu (8.04, mas migrando para o 9.04). Há uma dica dessa solução nesse resultado aleatório do Google , mas acho que o OP pode ter ficado confuso sobre a saída do cron versus a saída dos trabalhos do cron.
Estou aberto a soluções que envolvam scripts ou hackers, mas, idealmente, esse seria um bit de configuração que eu poderia definir em algum lugar. Não vejo nenhuma dica man cron
. Obrigado!
root: /var/log/cron.log
não funciona? feep.net/sendmail/tutorial/intro/aliases.htmlEu não acho que o que você está pedindo é realmente possível com o Ubuntu (ou qualquer outro) cron.
Além da ideia de geekmonkeys, você também pode definir $ MAILTO para uma conta local e rotear a saída através do procmail.
fonte
Nunca ouvi falar dessa configuração para o cron, então eu usaria a rota de script.
Crie um trabalho cron para patrulhar / var / spool / cron / * e acrescente o redirecionamento a qualquer trabalho que não possua um.
fonte
Outra opção seria criar um script de shell chamado cron_wrapper ou algo assim, e fazer com que ele fizesse algo assim:
Então, todos os seus crontabs precisam apenas de algo assim:
Observe que não testei esse código, é apenas uma ideia.
fonte
Não sei o que é o "cron padrão". Existem muitos daemons cron, diferentes distros usam diferentes. O cron Vixie é o mais amplamente implantado, então é provavelmente isso que você quis dizer. Mas em algumas distros, não seria o padrão.
Eu assumi o desenvolvimento do cron (dcron) de Dillon , que é o padrão no Arch Linux. Outras distribuições também o usam, mas não sei se é o padrão em outro lugar. O dcron tem uma opção de chamada
-M
para especificar que você deseja usar um script personalizado em vez do sendmail. O script é chamado sem argumentos e com alguns cabeçalhos de email e a&>
saída de qualquer cronjobs como stdin. (Se não houver&>
saída, o script não será chamado.)fonte
por que não configuramos MAILTO = "" em particular o crontab do usuário. Isso desativará o registro de mensagens de correio em / var / spool / mail /
fonte