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 comcrontab -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).