3 things to remember when writing cron jobs

Here is a reminder to myself with three things to remember when writing cron jobs.  Surprisingly, even after doing it fairly frequently for years and years, I still get caught by one of these once in a while.

  1. User.  Just because the script is working fine under your user, it doesn’t mean it will work well from crontab.  Cron jobs are often executed under a different user account.   Check, don’t assume.  And be noisy about permissions and other possibly related issues.
  2. Environment.  This is slightly related to the previous point.  But just because something works fine from the command line, doesn’t mean it will run smoothly as a cron task.  Anything that requires particular environment variables, user input, or being executed in a specific directory should be double checked.
  3. Duration.  Cron executes tasks on schedule.  It doesn’t really care if the previous instances finished running.  So, either make sure the script can run several instances simultaneously, or using a locking mechanism, to make sure two instances don’t step on each other’s toes.

2 thoughts on “3 things to remember when writing cron jobs”

Leave a Comment