J'essaie de déboguer un problème avec cron n'envoyant pas de courrier sur une boîte Centos 6 que je n'ai pas configurée. Comment puis-je déterminer quel expéditeur cron utilise pour envoyer du courrier? La page de manuel de crontab a ceci à dire, en partie:
En plus de LOGNAME, HOME et SHELL, cron (8) examinera MAILTO s'il a une raison d'envoyer du courrier suite à l'exécution de commandes dans "ce" crontab. Si MAILTO est défini (et non vide), le courrier est envoyé à l'utilisateur ainsi nommé. Si MAILTO est défini mais vide (MAILTO = ""), aucun mail ne sera envoyé. Sinon, le courrier est envoyé au propriétaire de la crontab. Cette option est utile si vous décidez de / bin / mail au lieu de / usr / lib / sendmail en tant que votre expéditeur lorsque vous installez cron - / bin / mail ne fait pas d'alias, et UUCP ne lit généralement pas son courrier.
La partie avec des astérisques est la partie qui me fait me demander "Eh bien, est-ce du sendmail ou du mail?"
Selon la page de manuel de cron (8) (le démon qui envoie réellement le message):
Cela m'amène à croire qu'il utilise sendmail par défaut. Vérifions avec strace:
Configurez un travail cron qui générera des e-mails:
Trouvez maintenant l'ID de processus pour crond:
Attachez-vous au processus crond avec strace, à la recherche d'une activité liée au processus. Comme strace écrit à stderr, je l'ai redirigé vers stdout et j'ai sollicité 'mail':
Oui, c'est sendmail.
la source
CRONDARGS=
). Le fait qu'il soit configurable est la raison pour laquelle j'ai inclus les étapes pour vérifier par soi-même.