Commande avec symboles de pourcentage non exécutés dans crontab

11

Le crontab suivant ne fonctionne pas:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test '`/bin/date +%Y-%m-%d` >> /tmp/test

J'ai également essayé de le démarrer avec:

SHELL=/bin/bash

Mise à jour: je pensais que les caractères de backtick `étaient les méchants, mais comme la réponse ci-dessous clarifie le pourcentage% était le coupable!

lpanebr
la source
Votre ligne de test ne fonctionnera qu'une fois par heure. Ce n'est peut-être pas ce que vous vouliez tester.
user535733
n'est pas la première de la minute? # mh dom mon dow command
lpanebr
Vous avez raison .. J'ai changé pour * / 1 pour le faire fonctionner toutes les minutes. Le cron fonctionne bien. Il y a quelque chose avec les commandes. Il semble que ce soit/bin/date +%Y-%m-%d
lpanebr

Réponses:

13

Dans /bin/date +%Y-%m-%d, vous devez vous échapper %avec \selon cette page de manuel :

Le champ "sixième" (le reste de la ligne) spécifie la commande à exécuter. La portion de commande entière de la ligne, jusqu'à une nouvelle ligne ou un caractère%, sera exécutée par / bin / sh ou par le shell spécifié dans la variable SHELL du fichier de configuration. Les signes de pourcentage (%) dans la commande, sauf s'ils sont échappés avec une barre oblique inverse (), seront modifiés en caractères de nouvelle ligne, et toutes les données après le premier% seront envoyées à la commande comme entrée standard.

DK Bose
la source
2
Merci! Je vais modifier la question afin qu'elle corresponde au vrai problème.
lpanebr