¿Qué aplicación de correo utiliza cron para enviar correo?


11

Estoy tratando de depurar un problema con cron que no envía correo en un cuadro de Centos 6 que no configuré. ¿Cómo puedo determinar qué programa publicitario está usando cron para enviar correo? La página del manual de crontab tiene esto que decir, en parte:

Además de LOGNAME, HOME y SHELL, cron (8) mirará a MAILTO si tiene alguna razón para enviar correo como resultado de ejecutar comandos en "este" crontab. Si se define MAILTO (y no está vacío), el correo se envía al usuario así llamado. Si se define MAILTO pero está vacío (MAILTO = ""), no se enviará ningún correo. De lo contrario, se envía un correo al propietario del crontab. Esta opción es útil si decide / bin / mail en lugar de / usr / lib / sendmail como su correo cuando instala cron - / bin / mail no tiene alias, y UUCP generalmente no lee su correo.

La parte con asteriscos es la parte que me hace preguntarme "Bueno, ¿es sendmail o mail?"

Respuestas:


3

Un rápido Google me muestra que /etc/sysconfig/crondes el archivo que define qué aplicación de correo utiliza cron.


Mi Google-fu es aparentemente terrible porque pasé una buena cantidad de tiempo buscando esto. Gracias.
cbmanica

23

De acuerdo con la página del manual para cron (8) (el demonio que realmente envía el mensaje):

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

Eso me lleva a creer que está usando sendmail por defecto. Verifiquemos con strace:

Configure un trabajo cron que generará correo electrónico:

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

Ahora encuentre la ID de proceso 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

Adjunte al proceso crond con strace, buscando actividad relacionada con el proceso. Como Strace escribe en stderr, lo redirigí a stdout y busqué '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

Sí, es sendmail.


44
En el sistema que probaste.
mfinni

3
Correcto, que es CentOS como está etiquetado en esta pregunta, en su configuración predeterminada.
yoonix

2
Sé que estoy golpeando un tambor cansado aquí, pero es un parámetro configurable, y la pregunta involucraba un sistema que el autor de la pregunta no había configurado. El anuncio publicitario podría haberse cambiado previamente del predeterminado, para el sistema en cuestión. El autor de la pregunta conoce el valor predeterminado.
mfinni

66
Correcto, pero en su configuración predeterminada, no hay nada que haga referencia al correo en el archivo de configuración (menos los comentarios, todo el contenido lo es CRONDARGS=). El hecho de que sea configurable es la razón por la que incluí los pasos para verificar por mí mismo.
yoonix
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.