[CentOS-mirror] setup mirror and lock files

Shaun Reitan shaun.reitan at ndchost.com
Thu Feb 28 20:40:46 UTC 2013

It’s just a mirror script and all but there is still a chance of having a race condition when using a pid/locking system like that.  I used to do it the same way until recently I discovered a utility called flock.  You can either use it within your script or you could simply use a one liner in your crontab.  I’ve included examples both ways.  flock is provided by util-linux package

Here’s one way via CRON
0 */6 * * * /usr/bin/flock -x -w 0 200 -c '/usr/bin/rsync -azH --delete --delay-updates –stats --no-motd msync.centos.org::CentOS /mirror/centos' 200>/var/lock/centos_mirror_sync

And here’s the way I do with with a script, my cron entry looks like the following...

0 */6 * * * /sbin/centos_mirror_sync >> /var/log/centos_mirror_sync.log 2>&1

The script is at http://mirrors.ndchost.com/ndchost/scripts/rsync_mirror_script

The script names the lock file after whatever you name the script, so if you rename the script to centos_mirror_sync and have another copy named debian_mirror_sync they should not conflict with each other.

Shaun Reitan
Network Data Center Host, Inc.

From: Ryan Becker 
Sent: Thursday, February 28, 2013 11:11 AM
To: Mailing list for CentOS mirrors 
Subject: Re: [CentOS-mirror] setup mirror and lock files

Sure thing, I'm not at the office right now but when I am I'll send it off to you.

On Feb 28, 2013 1:02 PM, "Tony Schliesser" <tony at schliesser.org> wrote:

  Ryan - If you don't care to share your mirror script, I'd like to see it. 


  Hi Jim, it's quite easy to do with a script. This first section here checks to see if a lock is present, and if it is, the script bails: 

  if [ -f /var/lock/subsys/rsync_updates ]; then
      echo "Updates via rsync already running."
      echo "--ERROR: REPOSITORY SYNC ABORTED AT `date`--"
      exit 0

  When I begin my sync, it touches the lock file (touch /var/lock/subsys/rsync_updates), and when finished, removes it (/bin/rm -f /var/lock/subsys/rsync_updates). If you need any help or wish to see my full script, just let me know and I can provide it.

  On Wed, Feb 27, 2013 at 8:42 PM, Jim Hartnett <mirrors at gawsolutions.us> wrote:

    Ok, I have the lock scripts setup and working, I think we're ready to
    add our mirror.

    (information repeated):

    mirror Url: http://mirrors.gawsolutions.us/centos
    bandwidth: 100 Mbps up/down unmetered transfer
    located in dallas, tx, usa
    Geeks at Work Solutions
    centos machine with apache
    rsync twice a day at offset minutes (reduces peak for even hour starts)

    - -Jim

    P.S: sorry if this message gets repeated multiple times. I just found out my email client was having some issues with the account I use for mirror mailing lists

    CentOS-mirror mailing list
    CentOS-mirror at centos.org

CentOS-mirror mailing list
CentOS-mirror at centos.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.centos.org/pipermail/centos-mirror/attachments/20130228/7a7c55fe/attachment.html 

More information about the CentOS-mirror mailing list