[CentOS-mirror] lock files

Wed Aug 5 21:58:40 UTC 2009
David Richardson <david.richardson at utah.edu>

On Wed, 5 Aug 2009, Nick Olsen wrote:

> I run a private centos mirror. Using rsync from the es.net mirror
> I?m sure you get this all the time, but how do I use lock files with the 
> rsync client to keep multiple from spawning because of cron jobs?
> My mirror also hosts ubuntu and a few others which run at the same time, 
> if this info is needed.
> Right now the cron job just SH?s a script containing a screen call with 
> the rsync command in it. And I would like to keep it this way. At least 
> that sh script. What im really looking for is a script that checks for 
> the lockfile if its running. And then if its not SH?s the script. I 
> would have the cron job run  that script, and that script would run my 
> sh script called centos.sh located in /root/

On my mirror, I have a separate script for each project I mirror. My 
update-centos.sh script looks like this:

### update-centos.sh

### Lock file
if [ -f /tmp/update-centos.lock ]
    then echo "Lock file exists" && exit 1
    date >> /tmp/update-centos.lock

### Big long rsync command ###

### Remove lock file
/bin/rm -rf /tmp/update-centos.lock
### end update-centos.sh

I also have /etc/rc.local remove the lock files for all my scripts (in 
case I reboot during a run):
# /etc/rc.local
/bin/rm /tmp/update.lock >/dev/null 2>&1

Hope this helps.

David Richardson <david.richardson at utah.edu>
"There are two kinds of statistics: the
kind you look up and the kind you make up."
-- Archie Goodwin, Death of a Doxy