Hello!
> From: "Andrew Lamzin" <[EMAIL PROTECTED]>
>
> Не получается сделать ротацию логов по команде oopsctl rotate -
> команда принимается, логи пишутся в тот же файл
>
> кусок конфига:
>
> > accesslog /cache/oops/access.log
>
> подскажите, как (пошагово) сделать эту ротацию?
В исходном oops.cfg написано:
##
# Logfile - just debug output
# When used in form 'filename [{N S}] [[un]buffered]'
# will be rotated automatically (up to N files up to S bytes in size)
##
logfile /dev/tty
#logfile /usr/local/oops/logs/oops.log { 3 1m } unbuffered
##
# Accesslog - the same as for squid. Re rotating - see note for logfile
##
accesslog /dev/tty
#accesslog /usr/local/oops/logs/access.log
Задай параметры для автоматического ротейта логов - параметры N и S. А в том
случае, как у тебя описано в конфиге, oopsctl rotate просто переоткрывает файл
(смотрим src/rotate_logs.c):
[...]
static void
rotate_names(char *name, filebuff_t *fb, int num)
{
int last, i;
char tname[MAXPATHLEN+16], tname1[MAXPATHLEN+16];
if ( fb == NULL || name == NULL ) return;
if ( !num ) {
/* if no number of logs configured just reopen file */
close(fb->fd);
fb->fd = open(name, O_WRONLY|O_APPEND|O_CREAT);
return;
}
/* rename old files */
last = num - 1;
/* now rotate */
for(i=last;i>0;i--) {
snprintf(tname, sizeof(tname)-1, "%s.%d", name, i-1); /* newer
version */
snprintf(tname1, sizeof(tname1)-1, "%s.%d", name, i); /* older
version */
RENAME(tname, tname1); /* rename newer
to older */
}
if ( fb->fd != -1 ) close(fb->fd);
RENAME(name, tname);
fb->fd = open(name, O_WRONLY|O_APPEND|O_CREAT, 0660);
}
[...]
Если оставить как есть, то схема ротейта такая:
1. mv /cache/oops/access.log /cache/oops/access.log.old
2. oopsctl rotate
---
Oleg Ramazanov [OR4-RIPN], Zenon N.S.P. (http://www.zenon.net/).
=====================================================================
If you would like to unsubscribe from this list send message to
[EMAIL PROTECTED] with "unsubscribe oops" in message body.
Archive is accessible on http://lists.paco.net/oops-rus/