web-dev-qa-db-fra.com

Comment envoyer un e-mail après une tâche cron

J'ai ajouté un travail cron pour ma sauvegarde incrémentielle, et je l'ai configuré comme ceci:

0 23 * * * /usr/bin/rsync -ravzX /mnt/external/project/ /media/backup/project/ | mail -s "Backup Success" [email protected]

Mais je n'ai reçu aucun e-mail.
Comment puis-je savoir ce qui ne va pas?

11
Booth

Vous pouvez utiliser l'option MAILTO dans crontab pour définir votre adresse e-mail et recevoir toutes les sorties et les erreurs dans tous les crons en cours d'exécution.

ouvrir crontab en utilisant

crontab -e

en haut du fichier, utilisez l'option MAILTO comme

[email protected]

cron recherche la fonctionnalité MAILTO pour décider où envoyer les journaux cron. il envoie est à root par défaut si les crons fonctionnent avec root.

placez-le sur le dessus et supprimez toute référence de commande de messagerie des crons.

Testez et vérifiez si vous recevez des alertes cron après cela.

24
sandeep.s85

Le problème dans ce cas était que le message avait été remis dans le dossier spam de gmail (ce qui vaut toujours la peine d'être vérifié). L'ajout de l'expéditeur en tant que contact devrait éviter cela.

En dehors de cela, regarder les en-têtes complets du message reçu peut donner des indices sur la raison pour laquelle il a été signalé comme spam (et donc comment influencer le filtrage pour ne pas le faire).

2
Paul Haldane

Sur FreeBSD

1: Vérifier le journal:

tail -f /var/log/cron
tail -f /var/log/maillog

2: Remplacez sendmail par le fichier ssmtp vi /etc/rc.conf .. et ajoutez:

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

3: Lancez les commandes suivantes:

killall sendmail
cd /usr/ports/mail/ssmtp/
make install replace clean

4: Modifier le fichier de conf ssmtp:

vi /usr/local/etc/ssmtp/ssmtp.conf

.... et ajoutez les lignes suivantes:

[email protected]
mailhub=smtp.example.com:465
RewriteDomain=example.org
UseTLS=YES
[email protected]
AuthPass=password222
FromLineOverride=YES
Hostname=yourhostname

5: Entrez la commande suivante:

echo ‘ssmtp_enable=“YES”’ >> /etc/rc.conf

p.s. d'autres options expliquées de ssmtp.conf sont ici:

http://www.techrepublic.com/blog/it-security/use-ssmtp-to-send-e-mail-simply-and-securely/

0
Denis Q.