Quand les entrées dans cron.daily
(et .weekly
et .hourly
) exécuté, et est-il configurable?
Je n'ai pas trouvé de réponse définitive à cela, et j'espère qu'il y en a une.
J'utilise RHEL5 et CentOS 4, mais pour d'autres distributions/plates-formes, ce serait bien aussi.
Pour les distributions que vous mentionnez:
Sur CentOS 5.4 (devrait être le même pour RHEL5)
grep run-parts /etc/crontab
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Donc, cron.daily fonctionne à 04h02.
Idem sur CentOS 4.8
Depuis la page de manuel:
Cron also searches for /etc/anacrontab
/etc/anacrontab
dans mon système (Fedora 12):
1 5 cron.daily Nice run-parts /etc/cron.daily
7 25 cron.weekly Nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly Nice run-parts /etc/cron.monthly
Voir également man anacrontab
Pour CentOS 6, vous devez grep/etc/anacrontab et la réponse varie si le serveur/ordinateur portable/dekstop/etc a été désactivé ou non.
cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
Shell=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily Nice run-parts /etc/cron.daily
7 25 cron.weekly Nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly Nice run-parts /etc/cron.monthly
Donc, entre 3 heures et 22 heures (après le redémarrage et après 5 minutes de fonctionnement de la machine ^^), exécutez /etc/cron.daily. S'il n'y a pas de redémarrage, le travail doit s'exécuter à 3 h 05+.
** As defined by START_HOURS_RANGE
^^ As defined by FIELD_TWO (i.e. the 5 after the 1 in the cron.daily line)
++ plus a random time between 0 and 45 minutes as defined by RANDOM_DELAY
Référence: http://linux.die.net/man/5/anacrontab
Pour les systèmes SuSE (spécifiquement SLES 11.1 et openSuSE 10.3), la durée d'exécution quotidienne des scripts /etc/cron.daily est contrôlée par la valeur de la variable DAILY_TIME définie dans la / etc/sysconfig/cron fichier.
Si la variable DAILY_TIME n'est pas définie, elle est par défaut: (heure du dernier démarrage + 15 minutes).
Sur Ubuntu, vous trouverez un fichier/etc/crontab, d'où il est configuré. Je suppose que c'est quelque chose de similaire sur RH et Centos.
CentOS6.x/RedHat6.x installe par défaut le package cronie-anacron. Vous devez:
miam installer cronie-noanacron
miam efface cronie-anacron
Ensuite, vous avez maintenant /etc/cron.d/dailyjobs pour configurer le meilleur horaire pour vos tâches quotidiennes, hebdomadaires et mensuelles.
J'utilise Slackware (14.0) et je n'avais pas /etc/crontab
. De plus, anacron
ne fait pas partie de la distribution.
La solution sur mon système était aussi simple que d'exécuter crontab -l
en tant que root:
root@flea:~# crontab -l
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
# properly on a newly installed system. If a script fails, run-parts will
# mail a notice to root.
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this. If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
De /etc/anacrontab
sur mon système Ubuntu 9.10:
1 5 cron.daily Nice run-parts --report /etc/cron.daily
7 10 cron.weekly Nice run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly Nice run-parts --report /etc/cron.monthly
Il n’existe pas de telles installations en ce qui concerne Solaris. Utilisez simplement les entrées crontab régulières pour les tâches quotidiennes.
Mise à jour d'OpenSuse 42.x:
/ etc/crontab affiche un fichier/usr/lib/cron/run-crons qui est censé s'exécuter toutes les 15 minutes.
/ usr/lib/cron/run-crons à son tour (peut avoir des lignes de code) qui recherche une variable appelée DAILY_TIME dans/etc/sysconfig/cron
Le fichier montre;
# At which time cron.daily should start. Default is 15 minutes after booting
# the system. Example setting would be "14:00".
# Due to the fact that cron script runs only every 15 minutes,
# it will only run on xx:00, xx:15, xx:30, xx:45, not at the accurate time
# you set.
DAILY_TIME=""
Réglez-le à l'heure dont vous avez besoin et redémarrez cron via;
systemctl restart cron.service