The crontab Files Network Time Distribution

Produce monthly accounting reports if accounting is enabled on the system ♦ Rotate log files cycled monthly ♦ Additional site−dependent activities may be taken into consideration on any particular system. The cron facility can also be used for periodic time−limited tasks. Once the desired period expires, the crontabs entry can be disabled or removed; the cron daemon must be reconfigured for a new job schedule. Unfortunately, this must be done manually, because crontabs entries are inclusive multiple specified conditions work like an OR function, not an AND function. The use of the cron facility can be restricted on a per−user basis. Two administrative files in the directory usrlibcron on some platforms, such as Solaris 2.x, the directory is etccron.d named cron.allow and cron.deny are available to explicitly define users who can or cannot schedule cron−jobs. These files function in the same way as other time−related jobs, and a detailed description can be found in the following text.

13.2.2 The crontab Files

A crontab file the global crontab file on BSD, or a users crontab file on System V and SunOS contains crontab entries, which direct the cron daemon to run commands at specified intervals. Each one−line entry has the following format: mins hrs day−of−month month weekday username cmd BSD mins hrs day−of−month month weekday cmd System V No spaces are allowed in the fields, except in the last cmd field. The first five fields specify the point in time when the cron daemon should invoke the command specified in the cmd field. Field Meaning Range mins The minutes after the hour 0–59 hrs The hours of the day 0–23 0 = midnight day−of−month The day within a month 1–31 month The month of the year 1–12 weekday The day of the week 1–7 1 = Monday BSD 0–6 0 = Sunday System V Note: An entry in any of the fields could be a single number, a pair of numbers separated by a dash indicating a range, a comma−separated list of numbers and ranges, or a wildcard an asterisk. The cmd field can be a UNIX command or a group of commands, properly separated with a semicolon, a script, or any executable program. The entire entry could be arbitrarily long, but it must be a single physical line in the file. For example, the crontabs entry: 30 11 31 12 etcwallHappy New YearLets make next year great runs the wall command at 11:30 a.m. on December 31, sending the following text to all users: Happy New Year Lets make next year great 309 Other examples: 0,15,30,45 echo −n ; date; echo devconsole displays the date on the console terminal every 15 minutes commands are grouped between parentheses in order to redirect their output as a group. 0 0 find −name .bak −type f −atime + 7 −exec rm {} \; runs the find command every day at midnight to remove all .bak files not accessed in the last seven days. 0 2 binsh usradmckpwd 21 | mail root runs the shell script ckpwd every day at 2:00 a.m. and redirects standard output and standard error to mail it to the root the shell is specified explicitly as Bourne shell. Below is a real superusers crontab file please note the plural form of the directory name crontabs where the file lives: cat usrspoolcroncrontabsroot 15 3 find −name .nfs\ −mtime+7 −exec rm −f {} \; −o −fstype nfs −prune 5 4 6 usrlibnewsyslog devnull 21 15 4 find varpreserve −mtime + 7 −a −exec rm −f {} \; The following is specified by those crontab entries: Every day at 3:15 a.m., run the find command to remove all .nfs files not modified in the last seven days, but skip the nfs filesystem. • Every Sunday at 4:50 a.m., run the usrlibnewsyslog script to update and store system messages for this week with disabled standard output and error. • Every day at 4:15 a.m., run the find command to remove all files not modified in the last seven days starting from the directory varpreserve. • The crontab file could be quite complex. Here is one example it is well−commented, so there is no need for additional explanations: cat usrspoolcroncrontabsroot Revision: 1.26 The root crontab can be used to perform accounting data collection and and clean up. Format of lines: min hour day mo month daywk cmd Remove old trash 0 5 find −local −type f −name core −o −name dead.letter −atime + 7 −mtime + 7 −exec rm −f {} Remove old sendmail mail files 2 5 find usrspoolmqueue −local −type f −mtime + 30 −exec rm −f {} ; Remove old rwhod files 2 5 find usrspoolrwho −local −type f −mtime + 7 −exec rm −f {} ; Remove old viex preserved files 3 5 find usrpreserve −local −type f −atime + 30 −mtime + 30 −exec rm −f {} ; Rotate the logs 1 1 0 umask 033;cd usrlibcron;if test −s log test wc −c log −ge 10240; then mv −f log OLDlog; touch log; killall 1 cron; fi 310 touch sulog; fi 1 1 0 umask 033;cd usradm;if test −s SYSLOG test wc −c SYSLOG −ge 10240; then mv −f SYSLOG oSYSLOG; touch SYSLOG; killall 1 syslogd; fi 2 1 0 umask 033;cd etc; if test −s wtmp test wc −c wtmp −ge 10240; then mv −f wtmp OLDwtmp; touch wtmp; if test −s xwtmp; then mv −f xwtmp OLDxwtmp; touch xwtmp; fi; fi 12 4 sh usrspoollpetcliblog.rotate If this machine is running NIS and its a slave server, the following commands keep the NIS databases up−to−date. 7 9 if etcchkconfig yp; then find usretcyp −type f −name xfr. −mtime + 1 −exec rm −f {} ; ; fi 8 if test −x usretcypypxfr_1ph; then usretcypypxfr_1ph; fi 9 9,15 if test −x usretcypypxfr_2pd; then usretcypypxfr_2pd; fi 10 9 if test −x usretcypypxfr_1pd; then usretcypypxfr_1pd; fi If this machine is a NIS master, ypmake will rotate the log file and ensure that the databases are pushed out with some regularity. It is best to not build and push the databases at the same time the commands above on slave servers are pulling the databases. 0,17,30,45 if etcchkconfig ypmaster etcchkconfig yp test −x usretcypypmake; then usretcypypmake; fi dodisk does the disk accounting 0 2 4 if etcchkconfig acct; then usrlibacctdodisk usradmacctnitedisklog; fi Reorganize file systems 0 3 0 if test −x usretcfsr; then usretcfsr; fi This is for accounting 0 2 4 usrlibacctdodisk

13.2.3 The crontab Command