J'ai un travail cron qui ne fait qu'exécuter rsync sur un répertoire particulier.
Lorsque j'exécute la commande rsync elle-même Sudo rsync -av --delete /directory1 /directory2
, elle s'exécute sans problème et fonctionne exactement comme prévu.
Lorsque le travail Cron est exécuté - je le vois dans /var/log/syslog.1 et il dit ceci (résumé):
Mar 12 11:38:01 ip-xx-xx-xx-xxx CRON[4970]: (root) CMD (rsync --delete /my/directory /backup/directory)
Mar 12 11:38:01 ip-xx-xx-xx-xxx CRON[4970]: (CRON) info (No MTA installed, discarding output)
Mais les fichiers ne sont pas dans le répertoire de sauvegarde (donc cela ne se termine pas).
Cette deuxième déclaration à propos de 'No MTA installed
' empêche-t-elle l'achèvement du travail cron? Quel est le meilleur moyen de terminer cette tâche cron et de se débarrasser de l'erreur MTA?
J'ai trouvé cette réponse mais cela ne dit pas si cela empêche le travail de se terminer.
Non, cela n’empêche pas la tâche CRON de se terminer.
Normalement, vous ne devriez pas laisser votre travail CRON générer une sortie sans lui indiquer où l'écrire. Si vous le faites, comme dans ce cas, CRON essaie de le poster quelque part (également spécifié dans le fichier crontab
). S'il échoue, il supprime la sortie, comme indiqué dans le fichier journal, et continue.
Dans votre cas, aucun "Agent de transfert de message" n'est installé. C'est un nom générique pour les packages, tels que postfix
et ssmtp
, qui fournissent une commande mail
.
Je recommande de rediriger SYSOUT et SYSERR à partir de la commande rsync
en utilisant >
et 2>
, respectivement. Si vous n'êtes pas du tout intéressé, redirigez la sortie vers /dev/null
.