Question Quand est-ce que `cron.daily` s'exécute?


Quand les entrées dans cron.daily (et .weekly et .hourly) est-il configurable?

Je n'ai pas trouvé de réponse définitive à cette question et j'espère qu'il en existe une.

Je suis sous RHEL5 et CentOS 4, mais pour d’autres distributions / plates-formes, ce serait bien aussi.


178
2018-04-26 15:31


origine


Sur NetBSD, les heures des tâches cron quotidiennes, hebdomadaires et mensuelles sont définies dans la crontab de root. - hd1
Cette question serait plus utile si la question était modifiée pour être plus générique. À tout le moins, posez la question de manière générique pour toutes les versions de redhat, centos distros plutôt que seulement pour les versions 4 et 5 (qui ne sont pas largement utilisées et sont ".fin de production" (semblable à fin de vie). - Trevor Boyd Smith
@TrevorBoydSmith - cette question a été posée il y a près de 8 ans. N'hésitez pas à demander une mise à jour pour les versions plus récentes. Mais RHEL 6 n'existait même pasen avril 2010: access.redhat.com/articles/3078#RHEL6 - warren
@warren mon intention n'est pas de critiquer, mais simplement d'améliorer la question et le stackoverflow en général. (Je crois comprendre que RHEL 6 n’existait pas lorsque la question a été posée. Comme la question a suscité beaucoup de votes favorables, il serait bon de l’avoir plus générique.) - Trevor Boyd Smith
@TrevorBoydSmith .. il y a déjà une réponse pour CentOS / RHEL 6 :) ... je serais heureux d'approuver de bonnes modifications de votre part si vous avez des idées. Allez-y et faites des suggestions de modifications à la question à laquelle vous avez pensé - warren


Réponses:


Pour les distributions, vous mentionnez:

Sur CentOS 5.4 (devrait être identique 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 s'exécute à 04h02.

Idem sur CentOS 4.8


136
2018-04-26 16:23



Y a-t-il une raison derrière cela? Je peux seulement supposer que ce serait le moment le plus silencieux sur le serveur. - The Pixel Developer
@ quelle heure il court dans Ubuntu? pouvez-vous s'il vous plaît dire comment je peux le vérifier? je ne suis pas capable de comprendre la sortie de commande - Narendra Jaggi
@NarendraJaggi la commande "run-parts" signifie "tout exécuter dans ce dossier". Les dossiers cron.daily, etc. fonctionnent car il existe un travail cron pour exécuter des parties d’exécution sur ces répertoires. Alors grep run-parts /etc/crontab trouve simplement les instructions sur le moment où run-parts est appelé pour chacun de ces répertoires. - Jordan Reiter
Cette réponse n'est plus valide pour CentOS 6 ou supérieur, faites défiler pour plus. - lzap


De 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


63
2018-04-26 15:35



C'est le cas avec CentOS 6. Merci. - mbrownnyc
Cela signifie 5 heures du matin tous les "1" jours ?. Désolé, mais cela ne répond rien. - elysch
@elysch Permettez-moi de répéter la dernière ligne de ma réponse: voir aussi "homme anacrontab" - leonbloy
Bonne explication de l'anacron ici. Fondamentalement, anacron a pas d'heure de début fixe, mais démarrera plutôt le processus en fonction de la date d’exécution du dernier processus, avec un délai spécifié. Si la machine est éteinte lorsque le processus aurait dû courir, il lancera alors le processus lorsque la machine se remettra en marche, après le délai spécifié (sauf aucune plage spéciale + délai aléatoire, voir la réponse de @spechal). - storm_m2138
@mbrownnyc et aussi CentOS-7 aussi - Trevor Boyd Smith


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

Ainsi, entre 3 heures et 22 heures (après le redémarrage et 5 minutes après le démarrage de la machine ^^), exécutez /etc/cron.daily. S'il n'y a pas de redémarrage, le travail doit être exécuté à 03h05+.

** 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


38
2017-10-29 21:20





Pour les systèmes SuSE (en particulier 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 du paramètre DAILY_TIME variable définie dans le / etc / sysconfig / cron fichier.

Si la variable DAILY_TIME n'est pas définie, sa valeur par défaut est: (heure du dernier démarrage + 15 minutes).


12
2017-08-16 03:18



Merci beaucoup! SuSE est plutôt opaque pour moi et j'apprécie votre réponse. - dr0i


Sur Ubuntu, vous trouverez un fichier / etc / crontab à partir duquel il est configuré. Je suppose que c'est quelque chose de similaire sur RH et Centos.


9
2018-04-26 15:33



C'est le bon fichier pour Ubuntu Lucid 10.04 LTS. Mon paramètre par défaut est 6h25 pour cron.daily. - geekQ
Toujours fixé à 6h25 sur Ubuntu 15.04. Mais je remarque que cron doit insérer un peu d’aléatoire dans le temps où il commence les travaux. En regardant les horodatages des fichiers créés par mon travail quotidien, je constate que certains jours, il fonctionne à 6h26 et d’autres à 8h04. - Stéphane
Toujours fixé à 6h25 sur Ubuntu. 16.04 - Toutes les heures à 17 minutes. Tous les jours à 6h25. Hebdomadaire à 6h47 le samedi. Mensuel à 6h52 le premier jour du mois. - WinEunuuchs2Unix


CentOS6.x / RedHat6.x installe par défaut le paquetage cronie-anacron. Vous devez:

miam installer cronie-noanacron

miam effacer cronie-anacron

Ensuite, vous avez maintenant /etc/cron.d/dailyjobs pour configurer la meilleure heure de planification pour vos tâches quotidiennes, hebdomadaires et mensuelles.


4
2017-08-29 19:50



Si anacron est installé, ne pouvez-vous pas simplement éditer / etc / anacrontab conformément aux autres commentaires ici au lieu de le désinstaller? - cincodenada
@cincodenada Ce n'est pas ce que suggère Daniel Stantos. - mikemaccana


J'utilise Slackware (14.0) et je n'ai pas eu /etc/crontab. Également, 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
2018-03-12 21:50





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

3
2018-04-26 15:54





Il n’existe aucune installation de ce type en ce qui concerne Solaris. Il suffit d’utiliser des entrées crontab régulières pour les tâches quotidiennes.


2
2018-04-26 15:52





Mise à jour OpenSuse 42.x:

/ etc / crontab affiche un fichier / usr / lib / cron / run-crons censé s'exécuter toutes les 15 minutes.

/ usr / lib / cron / run-crons à son tour (contient 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 sur le temps dont vous avez besoin et redémarrez cron via;

systemctl restart cron.service

0
2017-08-20 15:05