From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.2.5 Message-ID: <49C688BC.3090200@mail.ru> Date: Sun, 22 Mar 2009 21:51:40 +0300 From: Vladimir Karpinsky User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: ALT Linux Community general discussions References: <493F8D1F.10304@mail.ru> <200812102156.04579.alexey.borovskoy@gmail.com> <49C54DCD.1050001@mail.ru> <49C562C6.9030704@kalina.in.ua> <49C5DFF1.9040806@mail.ru> <49C66977.6050109@kalina.in.ua> In-Reply-To: <49C66977.6050109@kalina.in.ua> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-Antivirus: avast! (VPS 090321-0, 21.03.2009), Outbound message X-Antivirus-Status: Clean X-Spam: Not detected X-Mras: Ok Subject: Re: [Comm] =?koi8-r?b?+sXSy8HMydLP18HOycUg0M8g0sHT0MnTwc7JwC4=?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.10b3 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Mar 2009 18:51:59 -0000 Archived-At: List-Archive: List-Post: Yura Kalinichenko пишет: >> Насколько я понял, --- понял ещё не всё, разбираюсь, --- это не совсем >> то. У меня проблема такая: по крону раз в 15 минут запускается скрипт, >> пытающийся достучаться до удалённого ресурса и скачать оттуда данные. >> Связь, даже когда она есть, терпимая, хуже другое: 20 часов из 24 нет >> там нет электричества. Скрипт без связи отваливается, лок-файл >> удаляется, всё хорошо. Мне надо отследить момент, когда связь есть, и >> уже происходит перекачка данных, а тут подходит время следующего >> запуска скрипта: возможны разные неприятности при одновременной >> закачке, поэтому повторный скрипт должен обнаружить блокировку и >> просто отвалится, не трогая её. > Так это и происходит, когда используете для блокировки функцию > test_lock. Плюс проверяется - существует ли еще процесс, создавший > блокировку, и если нет (напр. был убит по kill -9) - блокировка > перехватывается. Я прошу прощения, а что такое kill -0? kill -l про сигнал 0 молчит... Я до конца не понимаю смысл цикла until: ставится запрет на перезапись существующего файла и дальше зацикливаемся в попытке его перезаписать. Далее, если kill -0 успешен, то удалять лок-файл не надо, ждём, что он процессе счёта до 10 сам уйдёт (?) или мы его убьём в следующей итерации until. Что-то я запутался, пните, пожалуйста, в нужном направлении. >> А если произойдёт штатный выход или kill -9, то блокировку надо снять, >> чтобы разрешить следующий запуск. kill -9 нужен на тот случай, когда >> связь разрывается в процессе закачки и скрипт подвисает (wget не >> отваливается). Для отработки такого случая, я убиваю соответствующий >> pid, в том случае, когда блокировка есть, а связи нет. > IMHO, логичнее заставить wget отваливаться при разрыве связи (--timeout > ?). Убивать чужой процесс - как-то некрасиво. Полностью согласен, но мои эксперименты с выдёргиванием сетевого шнура из компьютера, с котрого уже качает wget, показал, что wget не отваливается, несмотря на наличие таймаутов. Если переход на rsync окажется удачным, то там это не понадобится. Но я уже вижу, что можно реализовать то, что я хочу путём анализа перезаписи лок-файла при наличии запрета на перезапись в сочетании с успешностью работы ping. -- С уважением, Владимир.