[Comm] Зеркалирование по расписанию.

Yura Kalinichenko =?iso-8859-1?q?yuk_=CE=C1_kalina=2Ein=2Eua?=
Вс Мар 22 19:38:15 MSK 2009


Vladimir Karpinsky пишет:
> Здравствуйте!
>
> Насколько я понял, --- понял ещё не всё, разбираюсь, --- это не совсем 
> то. У меня проблема такая: по крону раз в 15 минут запускается скрипт, 
> пытающийся достучаться до удалённого ресурса и скачать оттуда данные. 
> Связь, даже когда она есть, терпимая, хуже другое: 20 часов из 24 нет 
> там нет электричества. Скрипт без связи отваливается, лок-файл 
> удаляется, всё хорошо. Мне надо отследить момент, когда связь есть, и 
> уже происходит перекачка данных, а тут подходит время следующего 
> запуска скрипта: возможны разные неприятности при одновременной 
> закачке, поэтому повторный скрипт должен обнаружить блокировку и 
> просто отвалится, не трогая её.
Так это и происходит, когда используете для блокировки функцию 
test_lock. Плюс проверяется - существует ли еще процесс, создавший 
блокировку, и если нет (напр. был убит по kill -9) - блокировка 
перехватывается.
> А если произойдёт штатный выход или kill -9, то блокировку надо снять, 
> чтобы разрешить следующий запуск. kill -9 нужен на тот случай, когда 
> связь разрывается в процессе закачки и скрипт подвисает (wget не 
> отваливается). Для отработки такого случая, я убиваю соответствующий 
> pid, в том случае, когда блокировка есть, а связи нет.
IMHO, логичнее заставить wget отваливаться при разрыве связи (--timeout 
?). Убивать чужой процесс - как-то некрасиво.

-- 
SY, 
   Yura Kalinichenko



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