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 #!/bin/bash
### Lock file if [ -f /tmp/update-centos.lock ] then echo "Lock file exists" && exit 1 else date >> /tmp/update-centos.lock fi
### 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. DR