O'Reilly logo

Mac OS X Hacks by Rael Dornfest, Kevin Hemenway

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Scheduling with System Tasks and Other Events

The cron utility runs continuously in the background, taking care of scheduled system tasks and user requests at the appropriate time.

You might not know it, but your Mac does quite a bit on its own behind your back — or under your fingertips, I should say. Your system regularly purges itself of outdated, space-hogging log files, updates system databases so utilities like locate (type man locate on the command line for details) can work effectively, and performs several other maintenance tasks that keep your system running lean and mean.

It does so by means of a task-scheduling utility called cron (as in chronological). The cron command launches automatically at system startup and runs continuously in the background. It keeps a list of what needs to happen when and consults this list each and every minute of each and every day, at least while your machine is awake. When it notices it’s time to perform some duty, it does so quietly in the background.

The lists are kept in crontab files associating a particular action with a timetable. Each user account can have its own crontab file. The system itself has a special crontab, found in the /etc directory; it belongs to the superuser, or root, account and takes care of actions requiring the kind of system access allowed only to root [Hack #50].

The crontab File

The format of a crontab file might appear rather esoteric at first, but it’s really rather simple. For example, Figure 5-20 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required