Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       02 Mar 2007  13:49:39
 To : Dmitry Mishin
 Subject : Re: Почему не правильно работает такая конструкция ...
 -------------------------------------------------------------------------------- 
 
 02 мар 2007, пятница, в 08:24 KRAST, Dmitry Mishin написал(а):
 
  DM> есть такой скрипт, запускается по крону в 0 часов
  DM> ###
  DM> /usr/local/sbin/squid -k rotate
  DM> cat /var/log/squid/access.log.0 >> /data/log/squid/access.log.03
  DM> ###
  DM> Посмотрел утром выполнение - в файл /data/log/squid/access.log.03
  DM> записалось содержимое файла /var/log/squid/access.log.1
  DM> В чем тут ошибка?
 
 squid -k rotate послал сигнал работающей копии squid-а и завершился.
 Запустился cat, открыл /var/log/squid/access.log.0. Судя по всему,
 работающая копия сквида еще к этому моменту не успела переименовать
 логи. cat начал писать. В это время squid переименовывает логи и
 access.log.0 переименовывается в access.log.1, что ничуть не мешает
 cat-у продолжать читать из этого файла (и помешать не может).
 Утром ты смотришь и видишь файл, который теперь называется access.log.1,
 но в момент запуска cat файл еще назывался access.log.0
 
 Классический race condition. Условием такое: успеет ли squid переименовать
 файлы к моменту запуска cat и открытия им лога. По-хорошему, перед
 запуском cat надо как-то проверять, успел или нет. Hапример, перед
 squid -k rotate определить дату модификации access.log.0 и в цикле
 проверять, не изменилась ли она (если нет, делать sleep 1). И только
 после того, как она изменилась, запускать cat.
 
 Hу или более тупо (и менее надежно), вставить что-то типа sleep 10
 между squid -k rotate и запуском cat в надежде, что за 10 секунд
 сквид всяко успеет переименовать файлы.
 
 Eugene
 -- 
 Пробуй, но не смей глотать
 --- slrn/0.9.8.0 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Почему не правильно работает такая конструкция ...   Eugene Grosbein   02 Mar 2007 13:49:39 
Архивное /ru.unix.bsd/26093cab5daf2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional