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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Maxim Timofeyev                      2:5030/1763.1  18 Oct 2001  00:33:43
 To : Alexander Afonyashin
 Subject : Re: правильно обрезать лог
 -------------------------------------------------------------------------------- 
 
 
  VB>>  вот, logrotate именно этим всем и занимается. Копирует, обрезает,
  VB>>  архивирует...
 AA> Х-м ... Вопрос на самом деле более глубокий. Что будет делать syslog в
 AA> промежутке между началом копирования файла лога в копию и
 AA> cp /dev/null > logfile
 
 Так никто не делает. =)
 
 AA> ? Если он что-то туда запишет в этот момент, то эти строки будут потеряны.
 
 syslog держит логи открытыми. ИМХО должно быть так:
 logrotate переименовал файл, но т.к. файл открыт syslog так и продолжает туда
 писать, потом logrotate создает новый файл, далее говорит syslog'у чтобы тот
 перечитал свой конфиг и тот (syslog) открывает вновь созданный файл.
 Hичего теряться не должно. Хотя я не уверен на 100% в том, что происходит
 переименовывании открытого файла. Hадо будет провести эксперимент...
 Вот проверил, вроде так и работает (не пинать! ;-) ):
 ========[ test.c ]========
 #include <stdio.h>
 #include <unistd.h>
 
 #define   ERR(n) {perror(n); return(-1);}
 
 #define   OLD  "./old"
 #define   NEW  "./new"
 
 int main()
 {
   FILE *f=NULL;
   f = fopen( OLD, "a" );
   if( !f ) ERR( "fopen" );
   fputs( "111111111111111111\n", f );
   if( link( OLD, NEW ) ) ERR( "link" );
   if( unlink( OLD ) ) ERR( "unlink" );
   fputs( "222222222222222222\n", f );
   if( fclose( f ) ) ERR( "fclose" );
   return( 0 );
 }
 ========[ test.c ]========
 $ gcc -Wall test.c -o test
 $ ./test
 $ cat ./new
 111111111111111111
 222222222222222222
 
 Вроде все Ok.
 
 AA> Другое дело, если перед началом копирования его известить, что мол, пиши
 AA> пока в памяти, тебе позже скажут, когда можно продолжать в файл писать.
 
 Если я правильно понимаю, то ничего в память писать ненужно.
 
 AA> Hо таким механизмом, вроде бы, обладает только multilog от DJB.
 
 Под его поделия даже жалко места на диске. У него на все свои стандарты, он
 один умный, а вокруг одни идиоты и т.п. Даже OS свою писать собирался. ;)
 
 -- 
 [2:5030/763@fidonet.org]       [tmahome@tma.spb.ru]       [http://tma.spb.ru]
 --- tin/pre-1.4-19990517 ("Psychonaut") (UNIX) (Linux/2.4.10-pre12 (i586))
  * Origin: home...home...home...home... ;) (2:5030/1763.1)
 
 

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

 Тема:    Автор:    Дата:  
 правильно обрезать лог   Kirill Frolov   11 Oct 2001 23:56:10 
 Re: правильно обрезать лог   Vladimir Bormotov   13 Oct 2001 02:35:47 
 Re: правильно обрезать лог   Dmitry Filonov   15 Oct 2001 01:57:47 
 Re: правильно обрезать лог   Vladimir Bormotov   15 Oct 2001 02:42:22 
 Re: правильно обрезать лог   Alexander Afonyashin   15 Oct 2001 10:31:35 
 Re: правильно обрезать лог   Maxim Timofeyev   18 Oct 2001 00:33:43 
Архивное /ru.linux/37967d3d4243d.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional