[sisyphus] E: Sisyphus sync problem

Anton Farygin rider на altlinux.com
Вт Ноя 8 14:08:51 UTC 2011


08.11.2011 15:01, Dmitry V. Levin пишет:
> On Tue, Nov 08, 2011 at 01:07:11PM +0400, Alexey Borisenkov wrote:
>> 08.11.2011 12:53, Michael Shigorin пишет:
>>> On Tue, Nov 08, 2011 at 11:16:55AM +0300, Grigory Milev wrote:
>>>>> --timeout 120
>>>> И чем он поможет? Просто прервет работу :(
>>>
>>> Хм, ты прав -- мне казалось, что там 60
>>> секунд по умолчанию;
>>> в мане: "The default is 0, which means no timeout."
>>
>> Там, возможно, и no timeout, но пока я *на
>> стороне сервера* не прописал параметр
>> timeout=1200, жизни с локальным зеркалом не
>> было никакой, отваливался по таймауту :( А
>> сейчас вроде нормально работает вот уж
>> несколько месяцев.
>
> На сервере rsync.altlinux timeout=600, но зеркалирующим это, судя по
> логам, не помогает - возникает ошибка вида
> rsync error: timeout in data send/receive (code 30) at io.c(137) [sender=3.0.9]
> заведомо до истечения этих 600 секунд.

В итоге мне помогает такое наколенное чудо-юдо, каждый может подправить 
на свой вкус:

#!/bin/sh

PIDFILE="/tmp/`echo $@|md5sum|cut -f1 -d' '`.pid"
if [ -f $PIDFILE ];then
     RSYNC_PID=`cat $PIDFILE`
     if [ -n "$RSYNC_PID" ];then
	ps --ppid `cat $PIDFILE` --no-heading -o pid|while read pid;do [ -n 
"$pid" ] &&  kill -9 $pid ;done
	[ -d "/proc/$RSYNC_PID" ] && exit 0
     fi
fi
echo $$ >$PIDFILE
while ! rsync "$@"; do sleep 5s; done
rm -f /tmp/$PIDFILE.pid



Подробная информация о списке рассылки Sisyphus