Linux Approach Network Time Distribution

After execution of the command, the system will respond with the following message or a similar message; this message is from the HP−UX system: warning: commands will be executed using usrbinsh This message warns that crontab entries, unless they explicitly refer to other shells, should match Bourne shell sh; otherwise the execution could fail. For small modifications of the crontab files, it is recommended that you use the crontab −e command option as the corresponding user, of course. The command invokes the default editor usually, the vi editor, to modify the users crontab file. Once the file is modified and saved and the editor closed, the cron daemon will be automatically recycled; there is no need for any additional action.

13.2.4 Linux Approach

Among all UNIX flavors, Linux has improved and developed cron facility up the level that surpasses real administrative needs. Linux fully supports cron facilities that exist on the System V platform. That means everything we have already said about cron configuration, as well as cron−related UNIX commands, is also true of the Linux cron facility. However, Linux offers much more. Linux has introduced the file etccrontab which provides another scheduling table for periodic system tasks; in that way Linux has made cron closer to other UNIX configuration topics that do have their configuration files in the etc directory. Additionally Linux has even introduced a separate etccron.d subdirectory for posting of programs for periodic execution; Linux cron is searching for programs in this directory. The implemented syntax for newly introduced scheduled entries corresponds to BSD format. This makes etccrontab work for any user. Remember, the format of an entry in the etccrontab file is: mins hrs day−of−month month weekday username cmd Besides the usual cron entries, Linux cron also understands entries that define the environment for the execution of the specified cron commands. The predefined environment makes cron entries more versatile, with a possibility of executing cron entries in an environment different from the default one. And last but not least, Linux has introduced a number of configurable flavor−specific cron−related commands. The behavior of commands relies on their sophisticated configuration files or, in many cases, on hierarchically organized configuration directories similar to the rc directory structure in the case of the system startupshutdown. Having all that in mind, Linux has built an extremely powerful and flexible cron facility, with the possibility for scheduling periodic tasks in multiple ways. Upon Linux installation, most routine periodic tasks for system maintenance are already scheduled through the etccrontab file and corresponding specific commands. However, it does not demand in any way that an administrator use the etccrontab file for personal needs. For users themselves, a usual System V approach is assumed. 312 For a better understanding of the previous discussion, let us see a few examples. First, to list the crontab file and the cron.d subdirectory: ls −l etc | grep cron drwxr−xr−x 2 root root 1024 Nov 30 17:30 cron.d −rw−r−−r−− 1 root root 385 Jan 16 20:46 crontab • Then to see the contents of the etccrontab file: cat etccrontab SHELL=binbash PATH=sbin:bin:usrsbin:usrbin MAILTO=root HOME= run−parts 01 root run−parts etccron.hourly 02 4 root run−parts etccron.daily 22 4 0 root run−parts etccron.weekly 42 4 1 root run−parts etccron.monthly • The first several entries define the environment for the execution of listed commands. This is Linux specific; other flavors would complain about those lines. The second part consists of run−parts entries, which are also a Linux invention. The format of the entries themselves is known, but the listed command run−parts is new — this command executes all individual programs that live in the referred subdirectories. In this case: ls −l etccron. etccron.daily: total 5 −rwxr−xr−x 1 root root 276 Aug 4 2000 0anacron −rwxr−xr−x 1 root root 51 Aug 15 2000 logrotate −rwxr−xr−x 1 root root 402 Aug 23 15:56 makewhatis.cron −rwxr−xr−x 1 root root 99 Dec 18 17:15 slocate.cron −rwxr−xr−x 1 root root 221 Oct 5 20:41 tmpwatch etccron.hourly: total 0 etccron.monthly: total 1 −rwxr−xr−x 1 root root 278 Aug 4 2000 0anacron etccron.weekly: total 2 −rwxr−xr−x 1 root root 277 Aug 4 2000 0anacron −rwxr−xr−x 1 root root 399 Aug 23 15:56 makewhatis.cron The listed programs will be executed on an hourly, daily, weekly, or monthly basis, depending on the subdirectory where they live. Some programs could be additionally configured through their configuration files, like logrotate and anacron, which makes the cron facility even more powerful, but also more complex. Especially, logrotate has its own configuration file etclogrotate.conf and additional configuration data in the subdirectory etclogrotate.d, as can be seen from the following: ls −l etclogrotate. −rw−r−−r−− 1 root root 542 Aug 15 2000 etclogrotate.conf etclogrotate.d: 313 Similarly, the program anacron has its own configuration table: ls −l etcanacron −rw−r−−r−− 1 root root 370 Aug 4 2000 etcanacrontab Obviously Linux has gone deeper in this segment than other UNIX flavors. Whether such a sophisticated cron mechanism is really necessary is another issue. Cron is a scheduler, and all UNIX flavors support this facility. Linux does it in a more complex way — it is also fair to say, in a more powerful way.

13.3 Programs Scheduled for a Specific Time