La commande cron job suivante est exécutée une fois par jour sur mon périphérique NAS:
find /nfs/rpiggott/complete -mtime +45 -exec rm {} \;
Je me demande s’il existe un moyen de rediriger une liste de manière à ce que le cron m'envoie un e-mail me montrant le fichier supprimé et/ou les erreurs éventuelles.
Pour cela, votre système devrait pouvoir envoyer des courriels. Ainsi, vous pourriez installer et configurer postfix
name __ :
Sudo apt install postfix
Pour Type général de configuration du courrier , choisissez Site Internet , si vous souhaitez effectuer une configuration plus détaillée, utilisez la commande suivante:
Sudo dpkg-reconfigure postfix
À ce stade, Cron commencera à envoyer des courriels. Tout ce qui sera généralement envoyé à STDOUT (si vous exécutez une commande dans la ligne de commande), y compris tous les messages d'erreur, sera envoyé à la boîte aux lettres locale de l'utilisateur qui exécute le Cronjob.
L'emplacement par défaut des boîtes aux lettres de l'utilisateur local est /var/mail/
. Vous pouvez installer le client de messagerie en ligne de commande mutt
pour lire le courrier électronique de votre utilisateur via la ligne de commande de manière pratique:
Sudo apt install mutt
mutt
implique l'installation et la configuration de postfix
si cela n'a pas été fait auparavant. Vous pouvez modifier la boîte aux lettres de destination par défaut en modifiant la valeur de la variable env nom MAILTO
_ au sein de crontab
name__, avant la définition du travail cron.
Remarque: à moins que vous n'ayez activé le certificat SSL/TLS dans votre configuration de messagerie, la plupart des serveurs de messagerie publics ignoreront vos messages d'une manière ou d'une autre. Par exemple, mail.google.com
les mettra dans le spam. S'il s'agit d'une instance de serveur et que vous disposez déjà d'un certificat SSL/TLS pour votre domaine principal, suivez ce manuel de Nice pour le joindre à Postfix.
Une fois que votre système est capable d’envoyer des courriels, vous devez rendre votre travail Cronjob plus détaillé (par exemple, ajoutez -v
à la commande rm
name__) et définissez la valeur correcte de MAILTO
name__. . Donc, votre crontab
devrait ressembler à ceci:
MAILTO="[email protected]"
* * * * * find /nfs/rpiggott/complete -mtime +45 -exec rm -v {} \;
Une autre approche consiste à créer un script (qui sera exécuté via crontab
name__) qui inclut votre commande et utilise mail
name__, mutt
name__, ssmtp
ou sendmail
pour envoyer des courriels. Voir le bas des références pour plus de détails.
Références et lectures complémentaires:
J'ai utilisé une méthode assez simple pour que cron
envoie des courriels: sauvegarde de la configuration Linux, des scripts et des documents vers Gmail .
De envoyer des alertes par e-mail à l'aide de ssmtp nous trouvons le moyen le plus simple d'envoyer des e-mails automatisés à partir d'un terminal ou d'un script. Les étapes d'installation sont simples:
Sudo apt install ssmtp
Sudo nano /etc/ssmtp/ssmtp.conf
# Change "MyEmailAddress" and "MyPassword" to your own.
Il y a une étape non mentionnée; Google vous enverra un e-mail confirmant que vous souhaitiez autoriser une application "moins sécurisée" à envoyer des e-mails avec votre compte:
Il y a une contrariété à recevoir trop de courrier. Par exemple, chaque fois que vous entrez un mot de passe incorrect pour Sudo
name__, vous recevrez un email: Arrêtez de m'envoyer de mauvaises tentatives de mot de passe Sudo