In addition to the individual user crontab files specified by POSIX 1003.1-2008 (ISO/IEC 9945-2009), which are located in /var/spool/cron as specified by the Filesystem Hierarchy Standard (FHS), the process that executes scheduled commands shall also process the following additional crontab files, which are in a different format (see below). /etc/crontab, /etc/cron.d/*. The installation of a package shall not modify the crontab file /etc/crontab, and shall not directly modify the user crontab files in /var/spool/cron/crontabs. but may use the crontab command to modify the latter.
If a package wishes to install a job that has to be executed periodically, it shall place an executable cron script in one of the following directories:
As these directory names suggest, the files within them are executed on a hourly, daily, weekly, or monthly basis, respectively, under the control of an entry in one of the system crontab files, at an unspecified time of day. See below for the rules concerning the names of cron scripts.
Note: It is recommended that cron scripts installed in any of these directories be script files rather than compiled binaries so that they may be modified by the local system administrator. Conforming applications may only install cron scripts which use an interpreter required by this specification or provided by this or another conforming application.
This specification does not define the concept of a package upgrade. Implementations may do different things when packages are upgraded, including not replacing a cron script if it marked as a configuration file, particularly if the cron script appears to have been modified since installation. In some circumstances, the cron script may not be removed when the package is uninstalled. Applications should design their installation procedure and cron scripts to be robust in the face of such behavior. In particular, cron scripts should not fail obscurely if run in unexpected circumstances. Testing for the existence of application binaries before executing them is suggested.
If a certain task has to be executed at other than the predefined frequencies, the package shall install a file /etc/cron.d/cron-name. The file shall have the same format as that described for the crontab command in POSIX 1003.1-2008 (ISO/IEC 9945-2009), except that there shall be an additional field, username, before the name of the command to execute. For completeness, the seven fields shall be:
Day of the month [1,31]
Month of the year [1,12]
Day of the week [0,6] (with 0=Sunday)
command [args ...]
Applications installing files in these directories shall use the LSB naming conventions (see File Naming Conventions).