O Vixiecron não permite a desabilitação de emails, como posso desativar emails do cron globalmente?

5

Toda vez que o cron roda, alguns processos do sendmail estão sendo criados, o que leva nossa máquina a grandes cargas altas. Nós temos perseguido este problema para o cron e o sendmail.

Adicionar MAILTO="" ao topo do cron é uma solução, canalizar cada comando cron para dev null é outra solução, mas eu preciso de uma solução global ... algum tipo de configuração no cron ou assim.

O Vixiecron NÃO tem a seguinte opção, que acredito que resolveria meus problemas

-m     This option allows you to specify a shell command to use for sending Cron mail  output  instead  of
      using  sendmail(8)  This command must accept a fully formatted mail message (with headers) on stan‐
      dard input and send it as a mail message to the recipients specified in the mail headers.  Specify‐
      ing the string off (i.e., crond -m off) will disable the sending of mail.

Então, como eu posso desabilitar globalmente os e-mails cron?

    
por Onitlikesonic 17.03.2014 / 14:55

1 resposta

4

Quando tiver que ser vixie-cron, adicionar MAILTO="" no topo do cron é a solução. Não existe um método global (todas as opções são armazenadas nos respectivos usuários crontab). Este

  

cron então acorda a cada minuto, examinando todos os crontabs armazenados,          verificando cada comando para ver se deve ser executado no minuto atual.           Ao executar comandos, qualquer saída é enviada para o proprietário do          crontab (ou para o usuário nomeado na variável de ambiente MAILTO no          crontab, se tal existir). As cópias filhas do cron rodando estas          processos têm seu nome coagido para maiúsculas, como será visto no          syslog e saída de ps.

não tem configuração adicional, então é executado sempre (também é possível eliminar o envio de e-mails adicionando >/dev/null 2>&1 ou &>/dev/null ao comando em si; mas isso seria mais trabalho do que editar todos os crontabs).

O link também afirma:

  

Cada usuário pode ter seu próprio crontab e, embora sejam arquivos em /var/spool/cron/crontabs , eles não devem ser editados diretamente .

vejo três opções possíveis:

  • Meu método preferido seria editar todos os crontabs com crontab -e .

  • use outro cron que tenha um método para definir globalmente MAILTO (que cron e como fazer isso é para outra pergunta;))

  • ignore o aviso e edite todos os arquivos da linha de comando com um loop for / next. Eu li isso como "você pode se você realmente realmente realmente quiser". Lembre-se dos comentários desses dois tópicos sobre isso: ubuntuforums e serverfault . Tanto quanto eu posso dizer o único problema que você enfrenta (se feito corretamente!) É que sua alteração será substituída se alguém usar crontab -e . Mas se todos concordam que se alguém alterar um crontab com crontab -e , eles também PRECISAM incluir o MAILTO = '' essa preocupação deve ser cuidada (já que a alteração feita é sobrescrita pelo novo crontab, mas essa também inclui sua mudança).

por Rinzwind 31.07.2014 / 11:50

Tags