[CentOS-mirror] ANN: withlock - reliable & easy locking for cron jobs

Mon Feb 22 09:18:01 UTC 2010
Jonas Anden <jonas.anden at aptilo.com>

Whats wrong with flock(1)?

  // J

On Sun, 2010-02-21 at 22:08 -0500, Randy McAnally wrote:
> This is what I use:
> 
> http://djlab.com/2009/10/lockfiles-in-bash/
> 
> --
> Randy
> 
> ---------- Original Message -----------
> From: Peter Pöml <poeml at cmdline.net>
> To: centos-mirror at centos.org
> Sent: Mon, 22 Feb 2010 03:52:11 +0100
> Subject: [CentOS-mirror] ANN: withlock - reliable & easy locking for cron jobs
> 
> > Hi,
> > 
> > [Apologies to those of you who received this mail more than once,
> >  due to crossposting to different forums in order to reach most 
> > relevant people]
> > 
> > This is a one-time post to announce the creation of "withlock" - a 
> > locking wrapper script to make sure that some program isn't run more 
> > than once. It is ideal to prevent periodic jobs spawned by cron from 
> > stacking up. The locks created are valid only while the wrapper is 
> > running, and thus will *never* require additional cleanup, even 
> > after a reboot. This makes the wrapper safe and easy to use, and 
> > much better than implementing half-hearted locking within scripts.
> > 
> > Usage is simple. Instead of your command
> >     CMD ARGS...
> > 
> > you simply use
> >     withlock LOCKFILE CMD ARGS...
> > 
> > If you are a mirror admin, there is a 99.9% chance that you might 
> > want to use this locking wrapper. Likely you ran into the situation 
> > where a script was (unexpectedly...) not finished before it was 
> > started another time; and/or you actually hacked some kind of 
> > locking into a script to prevent that from happening.
> > 
> > Since I suffered the same situation for some years, I looked around 
> > for solutions, and since I couldn't find one, I finally took the 
> > time to create one. The resulting wrapper is used in production 
> > since summer 2009, and proved to work reliably. Put the wrapper 
> > around all your cron jobs and be happy :-)
> > 
> > Use cases are to be found not only in mirroring, but that's where I 
> > come from, so I know that this will be useful for you guys.
> > 
> > Home page: http://code.google.com/p/withlock/
> > 
> > Features:
> >    - locks that never need a cleanup, whatever happens
> >    - can wait a defined time for a lock to become "free"
> >    - disallows lock files in unsafe locations (to prevent symlink 
> > attacks)   - easily installed (it's just one file), highly portable
> > 
> > Requirements:
> >    - Python 2.4 or newer
> >    - lots of platforms are supported (see list on home page)
> > 
> > For more information, please come to 
> > http://code.google.com/p/withlock/ .
> > 
> > Thanks,
> > Peter
> > 
> > _______________________________________________
> > CentOS-mirror mailing list
> > CentOS-mirror at centos.org
> > http://lists.centos.org/mailman/listinfo/centos-mirror
> ------- End of Original Message -------
> 
> _______________________________________________
> CentOS-mirror mailing list
> CentOS-mirror at centos.org
> http://lists.centos.org/mailman/listinfo/centos-mirror
>