web-dev-qa-db-fra.com

Comment les fichiers sous /etc/cron.d sont-ils utilisés?

Comment les fichiers sous /etc/cron.d sont-ils utilisés?

De https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

cron lit les fichiers dans le répertoire /etc/cron.d/. Habituellement, le démon système tel que sa-update ou sysstat place leur cronjob ici. En tant qu'utilisateur root ou superutilisateur, vous pouvez utiliser les répertoires suivants pour configurer les tâches cron. Vous pouvez déposer directement vos scripts ici . La commande run-parts exécute des scripts ou des programmes dans un répertoire via le fichier/etc/crontab :

/etc/cron.d/ Mettez tous les scripts ici et appelez-les depuis le fichier/etc/crontab.

Sur Lubuntu 18.04, les fichiers sous /etc/cron.d semblent être des fichiers crontab et non des scripts Shell (ce qui a été mentionné dans le lien ci-dessus):

$ cat /etc/cron.d/anacron 
# /etc/cron.d/anacron: crontab entries for the anacron package

Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

30 7    * * *   root    [ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron start >/dev/null; fi

Mon fichier/etc/crontab ne fait jamais référence à des fichiers sous/etc/cron.d, contrairement à ce que dit le lien:

$ cat /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Pourriez-vous expliquer comment les fichiers sous /etc/cron.d sont utilisés? Merci.

17
Tim

Dans les dérivés Debian, y compris Lubuntu, les fichiers dans /etc/cron.d sont effectivement /etc/crontab extraits, au même format. Citer la page de manuel cron :

De plus, dans Debian, cron lit les fichiers dans le /etc/cron.d répertoire. cron traite les fichiers dans /etc/cron.d comme de la même manière que le /etc/crontab fichier (ils suivent le format spécial de ce fichier, c'est-à-dire qu'ils incluent le champ utilisateur). Cependant, ils sont indépendants de /etc/crontab: ils n'en héritent pas, par exemple, des paramètres de variable d'environnement. Cette modification est spécifique à Debian, voir la note sous DEBIAN SPECIFIC ci-dessous.

Comme /etc/crontab, les fichiers dans le /etc/cron.d répertoire sont surveillés pour les modifications. En général, l'administrateur système ne doit pas utiliser /etc/cron.d/, mais utilisez le système standard crontab /etc/crontab.

La section spécifique à Debian indique la raison pour laquelle les administrateurs système ne devraient pas utiliser /etc/cron.d:

Soutien /etc/cron.d (répertoire de dépôt des packages crontabs)

Il est conçu pour permettre aux packages d'installer des extraits de crontab sans avoir à modifier /etc/crontab.

20
Stephen Kitt