← Back to team overview

touch-packages team mailing list archive

[Bug 917231] Re: Mutual exclusion for cronjobs

 

While an interesting concept, I believe cron is the wrong tool for this
job. Fixing this in cron would not ensure mutual exclusion in the cases
where these scripts are called by other means, eg manual calls.

The correct solution for backup_to_media and backup_to_file -- or any
other program that needs to ensure mutual exclusion -- would be to
create and flock a file, eg /var/lock/backup_run.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to cron in Ubuntu.
https://bugs.launchpad.net/bugs/917231

Title:
  Mutual exclusion for cronjobs

Status in “cron” package in Ubuntu:
  New

Bug description:
  I'm using Ubuntu 12.04 dev with cron 3.0pl1-120ubuntu2. I encountered
  in the past a problem which can be solved with a new feature. Here is
  an example of the problem:

  0 0 * * * root /usr/local/share/python/backup_to_media.py
  0 0 1 * * root /usr/local/share/python/backup_to_internet.py

  These cronjobs do backup some data every day to a media and one time a
  month to the internet. The problem is on the first day of every month
  both backups are running at the same time. This can cause some
  problems like the backuped data to the internet is one day older as it
  should be or there are maybe exceptions because both jobs are
  accessing the files at the same time.

  Maybe there could be a priority column which controls this:

  0 0 * * * root 0 /usr/local/share/python/backup_to_media.py
  0 0 1 * * root 1 /usr/local/share/python/backup_to_internet.py

  The priority column ensures that jobs which are running at the same
  time are excuted sequentially (if the priority of every job is the
  same number we will have the current behaviour). On the first day of
  every month /usr/local/share/python/backup_to_media.py is executed
  first because it has a lower number and if it finishes
  /usr/local/share/python/backup_to_internet.py is executed.

  This would prevent complicated entries in the crontab or own complex
  mutual exclusion to solve this problem.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cron/+bug/917231/+subscriptions