Lors de l'ajout d'une configuration cron dans /etc/cron.d/
ou en /etc/crontab
vous devez ajouter le nom d'utilisateur dans quel contexte la commande doit s'exécuter, dans votre exemple
* * * * * root /bin/touch /home/me/ding_dong
Et juste un indice de ma part :vous n'êtes pas obligé de commencer à exécuter ls -ltr
encore et encore, utilisez simplement watch -n 5 "ls -ltr"
et il exécutera la commande toutes les 5 secondes (ou toute autre valeur en remplaçant 5 par ce que vous voulez).
Pour créer un nouveau cron
travail, vous devez exécuter crontab -e
en tant qu'utilisateur pour lequel vous souhaitez exécuter la tâche. Ajoutez ensuite la ligne correspondante dans la fenêtre de l'éditeur qui s'affiche :
* * * * * /bin/touch /home/me/ding_dong
La façon dont vous le faites nécessite un format différent et ce n'est vraiment pas une bonne idée de toute façon. Crontabs en /etc/cron.d
ont un format légèrement différent, ils nécessitent un nom d'utilisateur pour être exécutés. Par exemple :
* * * * * USERNAME /bin/touch /home/me/ding_dong
Une bonne astuce (comme suggéré par @VogonPoetLaureate) consiste à capturer l'erreur standard de vos tâches cron, ce qui peut aider à les déboguer. Par exemple :
* * * * * /bin/touch /home/me/ding_dong 2>/tmp/error
Une erreur possible ici est comment un fichier d'une seule ligne est créé. À partir de la documentation Ubuntu :
... la ligne comporte cinq champs d'heure et de date, suivis d'une commande, suivie d'un caractère de saut de ligne .
Par exemple, cette méthode de création ne fonctionne pas :
printf "* * * * * /bin/touch /home/me/ding_dong" > /etc/cron.d/ding_dong