How are files under /etc/cron.d used?
From https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
cron reads the files in /etc/cron.d/ directory. Usually system daemon
such as sa-update or sysstat places their cronjob here. As a root user
or superuser you can use following directories to configure cron jobs.
You can directly drop your scripts here. The run-parts command run
scripts or programs in a directory via /etc/crontab file:/etc/cron.d/ Put all scripts here and call them from /etc/crontab
file.
On Lubuntu 18.04, the files under /etc/cron.d seem to be crontab files not shell scripts (which was mentioned in the above link):
$ 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
My /etc/crontab file never refers to files under/etc/cron.d, contrary to what the link says:
$ 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 )
Could you explain how the files under /etc/cron.d are used? Thanks.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
In Debian derivatives, including Lubuntu, the files in /etc/cron.d are effectively /etc/crontab snippets, with the same format. Quoting the cron manpage:
Additionally, in Debian,
cronreads the files in the/etc/cron.ddirectory.crontreats the files in/etc/cron.das in the same way as the/etc/crontabfile (they follow the special format of that file, i.e. they include the user field). However, they are independent of/etc/crontab: they do not, for example, inherit environment variable settings from it. This change is specific to Debian see the note under DEBIAN SPECIFIC below.Like
/etc/crontab, the files in the/etc/cron.ddirectory are monitored for changes. In general, the system administrator should not use/etc/cron.d/, but use the standard system crontab/etc/crontab.
The Debian-specific section hints at the reason system administrators shouldn’t use /etc/cron.d:
Support for
/etc/cron.d(drop-in dir for package crontabs)
It’s designed to allow packages to install crontab snippets without having to modify /etc/crontab.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0