Using "touch" and "test -e" as a lock test is not safe. If the shell
dies for any reason, the lock file will get stale.
If you sync station is linux, a safer option is to use the flock(1) program:
*NAME
flock - Manage locks from shell scripts
SYNOPSIS
flock [-sxon] [-w timeout] lockfile [-c] command...
flock [-sxon] [-w timeout] lockdir [-c] command...
flock [-sxun] [-w timeout] fd
*
Here is the lock part of my mirror script:
*RunLocked()
{
....
}
**(
flock -w 1 200
if [ "$?" -ne 0 ] ; then
echo "Error, lock is already taken..."
exit
else
RunLocked
fi
) 200> ${lockdir}/mirror.centos.lock
*
Jonny
--
João Carlos Mendes Luís - Computer& Networking Engineer
jonny@jonny.eng.br
On 07/12/2011 11:56 AM, Adam wrote:
> admin wrote:
>>
>> Yes It would be great . I'm still rsync centos repo.
>> Could you provide me bash script to rsync with file locking ?
>
> Attached is a bash locking rsync script. This script is pretty
> informative and intelligent. It verifies that the time stamp of the
> server you are syncing form is newer then yours before it syncs.
> Hence it shouldn't ever delete files you have already downloaded if
> you hit an old mirror.
>
> Adam
>
>
> _______________________________________________
> CentOS-mirror mailing list
> CentOS-mirror@centos.org
>
http://lists.centos.org/mailman/listinfo/centos-mirror