Ok, j'ai donc fait mon script, je l'ai laissé tomber dans /etc/cron.hourly
puis j'ai chmod 777
le fichier mais il ne s'exécutera pas (automatiquement). Si je l'exécute manuellement, cela fonctionne bien. Dois-je faire autre chose?
Ok, j'ai donc fait mon script, je l'ai laissé tomber dans /etc/cron.hourly
puis j'ai chmod 777
le fichier mais il ne s'exécutera pas (automatiquement). Si je l'exécute manuellement, cela fonctionne bien. Dois-je faire autre chose?
Les entrées de cron.hourly
sont exécutées par le mécanisme des éléments d'exécution ( man run-parts
pour plus d'informations). . Et run-parts
est sélectif quant aux noms de fichiers qu’il considère comme valides.
Par exemple, si vous attribuez une extension à votre script, il sera invalide et le travail ne sera pas exécuté. [a-zA-Z0-9_-]
sont les caractères valides, donc le '.' le rend invalide.
Lorsque vous ajoutez un travail à /etc/cron.hourly
(ou .daily
, .weekly
, etc.), testez toujours par la suite que run-parts
l'exécutera en exécutant la commande suivante:
run-parts --test /etc/cron.hourly
Si en exécutant cette commande, il affiche votre fichier, cela signifie que cela a fonctionné. Sinon, ne montre rien, votre nom de fichier n'est pas valide.
Quel était le nom de votre script?
La réponse de DaithiF devrait être la bonne réponse.
De plus, mon script n'avait pas #!/bin/bash
dans la première ligne. Même si le script pouvait être exécuté avec la ligne de commande, run-parts
le rejetait en disant "erreur de format Exec".
Le changement du nom de fichier de scriptname.sh
à scriptname
et l'ajout de #!/bin/bash
à la première ligne a permis à mon script de s'exécuter toutes les heures.
Lorsque vous courez
crontab -l
cette tâche figure-t-elle dans la liste?
sinon, ajoutez-le
crontab -e
ajoutez cette ligne
0 * * * * yourScript
si c'est dans cette liste, essayez d’ajouter le chemin du langage de programmation en haut de votre script
Exemple:
bash: #!/bin/bash
Ce 2 choses ont toujours résolu mes problèmes:)
Lire d'autres questions sur les étiquettes command-line cron cron-jobs crontab