Que mala direta o cron usa para enviar e-mails?


11

Estou tentando depurar um problema com o cron que não está enviando email em uma caixa do Centos 6 que eu não configurei. Como posso determinar qual cron de mala direta está usando para enviar email? A página de manual do crontab tem isso a dizer, em parte:

Além de LOGNAME, HOME e SHELL, o cron (8) examinará o MAILTO se houver algum motivo para enviar mensagens como resultado da execução de comandos no "this" crontab. Se MAILTO estiver definido (e não vazio), o correio será enviado ao usuário assim chamado. Se MAILTO estiver definido, mas vazio (MAILTO = ""), nenhum email será enviado. Caso contrário, o correio será enviado ao proprietário do crontab. Esta opção é útil se você optar por / bin / mail em vez de / usr / lib / sendmail como seu mailer quando instala o cron - / bin / mail não faz alias e o UUCP geralmente não lê seus e-mails.

A parte com asteriscos é a parte que me faz pensar "Bem, é sendmail ou correio?"

Respostas:


3

Um rápido Google me mostra que /etc/sysconfig/crondé o arquivo que define qual mala direta é usada pelo cron.


Meu Google-fu é aparentemente terrível porque passei bastante tempo procurando por isso. Obrigado.
Cbmanica

23

De acordo com a página de manual do cron (8) (o daemon que realmente envia a mensagem):

   -m     This  option  allows you to specify a shell command string to use for 
          sending cron mail output instead of sendmail(8).  This command must 
          accept a fully formatted mail message (with headers) on stdin and send
          it as a mail message to the recipients specified in the mail headers.

Isso me leva a acreditar que ele está usando o sendmail por padrão. Vamos verificar com strace:

Configure um trabalho cron que gere email:

user@host1 ~:
$ crontab -e
crontab: installing new crontab
user@host1 ~:
$ crontab -l
MAILTO=example@example.com
*/5 * * * * echo "testing"

Agora encontre o ID do processo para crond:

user@host1 ~:
$ ps auxww | grep crond
root      9684  0.0  0.0 117280  1296 ?        Ss   Jul22   0:17 crond
user     36344  0.0  0.0 103240   884 pts/2    S+   23:01   0:00 grep crond

Anexe ao processo de crond com strace, procurando por atividades relacionadas ao processo. Enquanto strace escreve para stderr, eu o redirecionei para stdout e grepped para 'mail':

root@host1 ~:
# strace -fp 9684 -s 1024 -e trace=process 2>&1 | grep mail
[pid 36204] execve("/usr/sbin/sendmail", ["/usr/sbin/sendmail", "-FCronDaemon", "-i", "-odi", "-oem", "-oi", "-t", "-f", "root"], [/* 16 vars */]) = 0
^C

Sim, é sendmail.


4
No sistema que você testou.
precisa saber é o seguinte

3
Certo, que é o CentOS conforme marcado nesta questão, em sua configuração padrão.
Yoonix

2
Eu sei que estou tocando um tambor cansado aqui, mas é um parâmetro configurável, e a pergunta envolvia um sistema que o solicitante não configurou. A mala direta poderia ter sido alterada anteriormente do padrão para o sistema em questão. O solicitante conhece o padrão.
mfinni

6
Certo, mas em sua configuração padrão, não há nada referenciando mensagens no arquivo de configuração (menos comentários, todo o conteúdo é CRONDARGS=). O fato de ser configurável é o motivo pelo qual incluí as etapas para verificar por si próprio.
Yoonix 30/09/14
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.