Votre cron
les messages d'erreur sont envoyés au mail
compte de l'utilisateur qui exécute le cron
emploi.
Type mail
sur la ligne de commande pour voir les messages. Pour une liste de mail
commandes, voir homme mail .
Vous devriez recevoir du courrier avec un message d'erreur ayant les effets suivants:
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
En ce qui concerne votre commande et pourquoi elle ne fonctionne pas, c'est parce que le signe "%" est un caractère "nouvelle ligne", ce qui signifie qu'il indique au shell de "passer à la ligne suivante". Ainsi, après avoir rencontré le premier "%", il passe à la ligne suivante et ne voit jamais le reste de la commande. Ceci est confirmé par le "EOF inattendu lors de la recherche du" "" correspondant (guillemet double).
La page de manuel locale de crontab ( man crontab
) manque de détails et je spécule que c’est parce que cron
est déconseillé pour launchd
1 . Cependant, la page de manuel crontab de développeur.apple.com l'explique
Le "sixième" champ (le reste de la ligne) spécifie la commande à exécuter.
courir. La totalité de la partie commande de la ligne, jusqu’à un caractère nouvelle ou%, sera exécutée par / bin / sh ou par le shell spécifié dans la variable SHELL du fichier cronfile. Les signes en pourcentage (%) de la commande, sauf s'ils sont précédés d'une barre oblique inverse (\), sont transformés en caractères de nouvelle ligne et toutes les données suivant le premier% sont envoyées à la commande en tant qu'entrée standard. La commande peut éventuellement être préfixée par " @AppleNotOnBattery
"pour dire à cron de ne pas exécuter la commande lorsque la batterie fonctionne. Par exemple, le champ" sixième "lorsqu’on utilise cette option apparaît comme suit: "@AppleNotOnBattery /usr/bin/touch /tmp/foo"
Votre solution:
Donc, ce que vous devez faire, c'est "échapper" le caractère "%" avec une barre oblique inverse (\) afin qu'il lui dise de l'interpréter littéralement.
Votre commande devrait être:
0/5 * * * * /bin/date "+\%Y-\%m-\%d \%H:\%M:\%S" >> /tmp/log.txt
1 De man crontab
: (Remarque de Darwin: bien que cron (8) et crontab (5) soient officiellement pris en charge par Darwin, leurs fonctionnalités ont été intégrées dans launchd (8), qui offre un moyen plus flexible d’exécuter automatiquement des commandes. Voir launchctl (1) pour plus d’informations. .)