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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     06 Jun 2005  22:52:07
 To : Sergej Pupykin
 Subject : Re: хитрый tail
 -------------------------------------------------------------------------------- 
 
 Sergej Pupykin  @ Mon, 6 Jun 2005 17:00:39 +0000 (UTC):
 
  SP> Как бы более правильно сделать следующую вещь:
  SP> надо слать по почте все что появляется в логе
 
  SP> я сделал так:
  SP> tail -n 0 -f file.log >file.tmp &
 
  SP> while [ 1 ]; do
  SP>     LINES=`cat file.tmp | wc -l`
  SP>     if [ $LINES -gt 0 ]; then
  SP>         cat file.tmp | sendEmail -f ...@inbox.ru -t ....@.....ru -u "..."
  SP> -s smtp.inbox.ru:25 -v        echo -n >file.tmp    fi    sleep 30 done &
 
  SP> в принципе это работает, но иногда появляется куча символов #0 в начале
  SP> file.tmp
 
  SP> я догадываюсь, что это из-за того, что в file.tmp запись из двух мест
  SP> происходит... Hо как бы сделать более правильно, чтоб такого не было?
 
  SP> мож вообще по-другому? надо просто смотреть переодически в лог и
  SP> слать то, что там появилось.
 
 Hу, типа да.  Открыть файл скриптом на чем-нибудь более продвинутом и
 периодически почитывать до конца.  Отслеживать в прочитанном последний
 конец строки на всякий случай.
 
  SP> И в догонку, tail -f из альта 2.2 переоткрывает переодически файл, а
  SP> она же в сусе 9.0 нет. Т.е. в альте файл на котором висит tail можно
  SP> удалить/перенести создать заново и все будет работать, а в сусе придется
  SP> перезапускать tail. как с этим можно справиться?
 
 Если делать скриптом, то в том же цикле открываем файл с тем же именем,
 дергаем stat, сравниваем inode.  Если не совпадает, малость спим (тот,
 кто в лог пишет, тоже может не враз закончить), старый открытый файл
 дочитываем до конца, закрываем, переходим к новому.  Что же до tail, то
 в дебиане, например, есть отдельная программа xtail.  До кучи умеет
 отслеживать несколько файлов и даже целыми директориями.
 
 -- 
 Artem Chuprina
 RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
 
 Рюмку взял - паяльник положил
 --- ifmail v.2.15dev5.3
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 хитрый tail   Sergej Pupykin   06 Jun 2005 21:00:39 
 Re: хитрый tail   Artem Chuprina   06 Jun 2005 22:52:07 
 Re: хитрый tail   Mikhail Gusarov   06 Jun 2005 23:10:23 
Архивное /ru.linux/256066aa63ab3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional