|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/37967d3d4243d.html, оценка из 5, голосов 10
|