For some reason throughout all my years of using *nix I haven't ever paid attention to what Anacron is or what it does. I just figured it was something like regular old cron. But, I just learned some more about it and feel really silly for not knowing about it before now.
Anacron schedules the execution of various scripts or commands, like cron does,
but it's more flexible about what time it actually runs the jobs. Cron runs
things exactly at the time the crontab says to run them. If the computer is not
up and running at that time, the cron jobs don't get run. If Anacron is run and
it determines that a job that is supposed to run daily hasn't run in more than a
day, it goes ahead and runs it right now, then updates a timestamp file to
indicate that the job has been run for today. My main computers are generally
sleeping (and hence cron is not running) when I'm not using them, so OS X's
nightly cron jobs that run at 3:15 AM, for example, pretty much never get run.
Anacron makes it so they do get run automatically when I wake the computer up in
the morning. If you install Anacron using Darwinports,
it even puts lines for running the daily, weekly, and monthly crons in
/opt/local/etc/anacrontab, and all you have to do is uncomment those lines.
This is great. Now I can finally have backups of my home directory happen automatically every day I have my computer running, even when I keep it sleeping a good portion of the time. I'm thinking about writing a little backup script to run with Anacron that sends me notifications about the backups using Growl. If I do so, I think I will also try to make it work easily using D-Bus for the notifications if you're using Gnome or something.