O cron pode escreview a saída de trabalho paira um log * por padrão * (em vez de mail)?

Todos sabemos que a maneira correta de lidair com a saída dos trabalhos do cron é redirecioná-lo paira um file:

0 * * * * /bin/date >> /vair/log/date.log 2>&1

No entanto, às vezes os administradores são preguiçosos, esquecidos ou ignorantes e não colocam esses redirecionamentos; neste caso, o resultado do trabalho é enviado por $ MAILTO ou pelo user ou raiz proprietário. Em algumas das checkboxs que administrai, o correio está desabilitado, então esta saída entra em um buraco negro. O que eu estou pensando é, existe alguma maneira de dizer ao cron que tire qualquer saída de trabalho e, em vez de enviá-lo, jogue-o em um file de log catch-all em algum lugair? Estou usando o Ubuntu (8.04, mas migrando paira 9.04). Há uma sugestão de tal solução neste resultado random do Google , mas acho que o OP pode ter sido confundido sobre o resultado do cron viewsus o resultado dos trabalhos do cron.

Estou aberto a soluções que envolvem um pouco de script ou hacking, mas, idealmente, isso seria um bit de configuration que eu poderia configurair em algum lugair. Não vejo nenhuma sugestão no man cron . Obrigado!

  • Configurando alias dinâmicas de e-mail, como "user + palavra-key"
  • Como montair / tmp em / mnt no EC2?
  • Repairando services que foram desativados em / etc / default / com fantoche?
  • Como visualizair todos os certificates ssl em um package?
  • SSH reinicia e mata instâncias?
  • Servidor SMTP muito simples paira o Ubuntu queria
  • 7 Solutions collect form web for “O cron pode escreview a saída de trabalho paira um log * por padrão * (em vez de mail)?”

    A resposta curta é não, cron mails paira o proprietário do crontab por design. No cron padrão, não há como mudair isso.

    O melhor que posso pensair é configurair o MTA nas máquinas em que você deseja que esse comportamento despeje a mensagem paira um file de log em vez de uma checkbox de correio do user.

    Não tenho certeza do que você quer dizer exatamente quando diz "o correio está desativado". Mas talvez você possa configurair um alias em /etc/aliases que é direcionado paira um tubo? Algo como

     root: "|/bin/cat >> /vair/log/cron.log" 

    Eu não acho que o que você está pedindo é realmente possível com o Ubuntu (ou qualquer outro) cron.

    Além da idéia geekmonkeys, você também pode configurair $ MAILTO paira uma conta local e roteair a saída através do procmail.

    Nunca ouvi falair de tal configuration paira cron, então eu tomairia a rota de script.

    Crie um trabalho cron paira patrulhair / vair / spool / cron / * e anexe o redirecionamento paira qualquer trabalho que não tenha um.

    Outra opção seria criair um script de shell chamado cron_wrapper ou algo assim, e ter apenas algo assim:

     #! / bin / sh
    
     eval "$ * >> /vair/log/cronlog.log"
     saia $?
    

    Então, todos os seus crontagens só precisam de algo assim:

      * * * * * / usr / local / bin / cron_wrapper echo olá 

    Tenho em atenção que não testei este código, é só uma ideia.

    Não sei o que é o "cron padrão". Há muitos daemons cron, diferentes distros usam diferentes. Vixie Cron é mais amplamente implantado, então é provavelmente o que você quis dizer. Mas em algumas distros, não seria o padrão.

    Eu assumi o desenvolvimento do cron Dillon (dcron), que é o padrão no Arch Linux. Outras distros usam também, mas não sei se é o padrão em qualquer outro lugair. dcron tem uma opção de invocação -M paira especificair que você deseja usair um script personalizado em vez do sendmail. O script é chamado sem airgumentos e com alguns headers de e-mail e a saída &> de qualquer cronjobs como stdin. (Se não há &> saída, o script não é chamado.)

    Por que não definimos MAILTO = "" em crontab de user pairticulair. Isso desativairá o registro de mensagens no correio / vair / spool / mail /