L'ajout de fichier à /etc/cron.d ne le fait pas fonctionner (ubuntu 10.04)

20

Si je scp un fichier cron dans /etc/cron.d, il ne s'exécute que si je modifie le fichier et modifie la commande. Ensuite, crond semble récupérer le fichier cron.

Comment faire pour que cron recharge ses fichiers cron dans ubuntu 10.04? «toucher» le fichier ne fonctionne pas ni «redémarrer cron» ou «recharger cron».

Mon fichier cron est configuré pour s'exécuter toutes les minutes et se connecte à un fichier. Rien ne se termine dans le fichier journal jusqu'à ce que j'édite la commande, et il n'y a pas d'entrée pour cela dans / var / log / syslog

Je suis perplexe.

Voici mon fichier cron enregistré dans /etc/cron.d/runscript (notez qu'il se termine par une nouvelle ligne)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &
à M
la source
3
Il est bon que vous ayez inclus l'utilisateur pour exécuter le travail en tant que. Je l'ai laissé de côté, ce qui a été la cause de mes problèmes.
Edward Anderson
1
Des années plus tard, aucune réponse acceptée? L'avez-vous fait fonctionner? Je suis coincé aussi, et les pièges courants ne semblent pas être le problème.
twigmac

Réponses:

27

Je viens de rencontrer ce problème et bien qu'il ne réponde pas à votre cas spécifique, il pourrait bien aider d'autres personnes à googler le même problème car cette question revient très haut dans les résultats.

J'avais enregistré un fichier dans /etc/cron.d et il était ignoré. Dans mon cas, c'est parce que j'avais donné une extension aux fichiers.

mytask.cronn'a pas fonctionné mais je l'ai renommé mytasket cela a bien fonctionné.

Tous les fichiers avec des extensions sont ignorés, assurez-vous donc que votre fichier que vous enregistrez n'a pas d'extension.

Anigel
la source
13
La page de manuel cron (8) sur Debian / Ubuntu documente cela assez clairement de nos jours: "La prise en charge de /etc/cron.d est incluse dans le démon cron lui-même [...] Les fichiers de ce répertoire [...] doivent être conformes selon la même convention de dénomination que celle utilisée par les parties d'exécution (8): elles doivent être constituées uniquement de lettres majuscules et minuscules, de chiffres, de traits de soulignement et de tirets. Cela signifie qu'elles ne peuvent contenir aucun point. "
Josip Rodin
15

Vérifiez que le fichier que vous copiez se termine par a \n. Les entrées dans les crontabs qui n'ont pas \nà la fin rencontrent généralement des problèmes. Le moyen le plus simple de garantir cela est de mettre une ligne vierge après votre dernière entrée.

user9517 prend en charge GoFundMonica
la source
1
J'étais sur le point de modifier ma question pour dire qu'elle se termine avec \ n
tom
1
Debian / Ubuntu cron en avertit dans syslog, depuis la version 3.0pl1-110 publiée en 2010, cf. entrée du journal des modifications: "Enregistrer crontabs manquant de nouvelle ligne avant EOF dans syslog. Cela ne concerne que les crontabs non installés via crontab (1), c'est-à-dire. /etc/cron.d/* et / etc / crontab. Ferme: # 76625"
Josip Rodin