web-dev-qa-db-fra.com

Quand est exécuté `cron.daily`?

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.

209
warren

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

156
Richard Holloway

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

79
leonbloy

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

44
Spechal

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).

14
darklion

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.

9
Sven

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.

5
Daniel Santos

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
4
paddy

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.

2
jlliagre

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
1
MarcoZen