web-dev-qa-db-fra.com

Comment formater les crontabs personnalisés dans /etc/cron.d/?

D'après ce que je comprends, je peux ajouter des tâches système avec des planifications simples à /etc/cron.hourly/, /etc/cron.daily/, etc., ainsi que des tâches système avec des planifications personnalisées à /etc/cron.d/.

Mais dans un grand service informatique, où plusieurs personnes peuvent s’occuper d’un serveur, le répertoire /etc/cron.d est probablement le meilleur endroit pour installer des crontabs - c’est un point central qui vous permet d’enregistrer les recherches! (CronHowTo)

J'ai créé /etc/cron.d/testing avec le contenu suivant:

# /etc/cron.d/testing: crontab entries for report generation

Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

15 13    * * 3   root   /usr/bin/supervisorctl start reports
00 16    * * 4   root   /usr/bin/supervisorctl start reports

Le fichier a les propriétés suivantes:

user@server:/etc/cron.d$ ls -la
total 28
drwxr-xr-x   2 root root  4096 Jul 14 12:57 .
drwxr-xr-x 146 root root 12288 Jul 14 13:48 ..
-rw-r--r--   1 root root   188 Feb 20  2014 anacron
-rw-r--r--   1 root root   102 Feb  9  2013 .placeholder
-rwxr--r--   1 root root   286 Jul 14 13:43 testing

J'ai redémarré la machine à 13 heures jeudi, en espérant qu'elle déclenche un rapport à 13h15. (Le plan était de tester cette invocation, mais aussi de la programmer tous les vendredis à 16 heures.)

Mais rien ne s'est passé. Il n'y a pas d'erreur (ni d'événement) dans /var/log/syslog ou dans les journaux du superviseur. J'utilise la même commande dans /etc/cron.daily/testing et cela fonctionne:

#!/bin/sh
/usr/bin/supervisorctl start reports

... et je peux invoquer le travail de superviseur indépendamment. Donc, je ne pense pas que le problème est dans le travail de superviseur, ou dans mon invocation.

Qu'est-ce que je fais mal? (Et où est le problème enregistré?)

2
david.libremone

Le format utilisé pour le fichier crontab /etc/cron.d/testing est correct. (Il devrait être, il a été copié à partir de /etc/cron.d/anacron)

Le problème était que je l'avais modifié à partir de Windows et que je perturbais probablement les fins de ligne. J'ai re-cloné anacron, je l'ai édité sur Ubuntu et tout a fonctionné.

(Je ne sais toujours pas où le message d'erreur, s'il y en a un, a été enregistré.)

0
david.libremone