Ok, donc j’ai fait mon script, je l’ai déposé /etc/cron.hourly
puis je chmod 777
le fichier mais il ne fonctionnera pas (automatiquement). Si je le lance manuellement, cela fonctionne bien. Dois-je faire autre chose?
cron-jobs
command-line
crontab
cron
Switchkick
la source
la source
Réponses:
Pourquoi ne pas utiliser crontab (/ etc / crontab) et utiliser * / 1 dans le champ des heures. J'ai utilisé cela pour exécuter un script toutes les 5 minutes et cela fonctionne bien:
la source
cron.daily
and friends fonctionne un peu mieux si la machine ne fonctionne pas tout le temps, car anacron essaie de se rapprocher du bon programme alors que Plain Cron ne les exécutera tout simplement pas si la machine n’est pas allumée toute la nuit. Pour les emplois horaires, cela n'a probablement pas beaucoup d'importance./etc/crontab
:cron.daily
,cron.weekly
etcron.monthly
courir avec anacron (si disponible) , mais toutes les heuresrun-parts --report /etc/cron.hourly
.Les entrées
cron.hourly
sont exécutées par le mécanisme des pièces d’exécution (man run-parts
pour plus d’informations). Etrun-parts
est difficile quant aux noms de fichiers considérés comme valides.Par exemple, attribuer une extension à votre script le rendra invalide et empêchera l'exécution du travail.
[a-zA-Z0-9_-]
sont les caractères valides, donc le '.' le rend invalide.Lors de l'ajout d'un travail à
/etc/cron.hourly
(ou.daily
,.weekly
etc.), testez toujours après pourrun-parts
l'exécuter en exécutant la commande suivante:Si en exécutant cette commande, votre fichier est affiché, cela signifie que cela a fonctionné. Sinon, si rien ne s'affiche, votre nom de fichier n'est pas valide.
Quel était le nom de votre script?
la source
giving your script an extension will make it invalid and result in the job not being run
--report
pour exécuter les scripts.chmod +x /etc/cron.hourly/myscript
fait le tour et l'arun-parts
répertorié comme prévu.Votre problème est probablement dû aux autorisations trop ouvertes, qui permettent à quiconque de modifier votre fichier. Essayez à la
755
place.Rechercher dans les entrées cron de votre sortie syslog devrait le confirmer.
la source
La réponse de DaithiF devrait être la bonne réponse.
En outre, 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
il l'a rejeté en indiquant "Erreur de format Exec".Changer le nom du fichier à partir
scriptname.sh
descriptname
et en ajoutant la#!/bin/bash
en première ligne permet d'exécuter toutes les heures mon script.la source
Quand tu cours
cette tâche est-elle sur la liste?
sinon ajoutez-le
ajouter cette ligne
s'il se trouve dans cette liste, essayez d'ajouter le chemin du langage de programmation en haut de votre script.
Exemple:
Ces 2 choses ont toujours résolu mes problèmes :)
la source