Rotering af logfiler på et andet drev.

Debian er normalt ikke det jeg roder for meget med, men en gang i mellem bliver man nødt til det. Med den lovgivning vi har i dag, skal vi gemme et år tilbage. Det er sådan set nemt nok at sætte op. Først dog lige hvordan det foregår på FreeBSD.

På FreeBSD

På FreeBSD sætter man f.eks. newsyslog til at rotere maillog med følgende kommando.

/var/log/maillog    640  365  *     @T00  JC

Den rotere hermed hver nat og gemmer 365 dage tilbage. igennem /etc/crontab bliver newsyslog så kørt.

0   *   *   *   *   root    newsyslog

Man kan dog komme ud fra at alle logfilerne ikke kan ligge på samme disk, og man kan derfor tilføje -a <dir> til newsyslog, og hermed definere et sted hvor roterede filer skal gemmes.

0   *   *   *   *   root    newsyslog -a /var/log/archived-logs

På Debian

På Debian er det lidt anderledes. I hvert fald for nogen af logfilerne. For det første kan det være sat op i /etc/logrotate eller i dens egen fil i /etc/logrotate.d/. I det setup jeg arbejdede med sidst, var dette dog ikke tilfældet. Her blev filerne styret i syslogd. Følgende giver alle de filer som syslogd rotere;

# /usr/sbin/syslogd-listfiles
/var/log/mail.warn
/var/log/daemon.log
/var/log/syslog
/var/log/mail.log

Via /etc/cron.daily/sysklogd bliver disse filer så fundet frem og med /usr/bin/savelog roteret. De filer jeg arbejder med bliver gemt på følgende måde.

savelog -g adm -m 640 -u root -c 365 $LOG >/dev/null

Hvis man læser manpages til savelog så får man at vide at -r <rolldir> kan benyttes, til at gemme de gamle filer på en anden lokation. Det fremgår dog ikke, at denne rolldir er relativ til den roterede fil og det er derfor ikke muligt at angive en absolut sti. Dette er blevet added som en bug, men den er i hvert fald ikke rettet på vores system.

Nå, men tilbage til selve opgaven. At flytte gamle logfiler over på et andet drev. Først link til drevet så jeg får en relativ path.

ln -s /log/servernavn/savelog /var/log/archived-logs

Derefter flytte de filer som defineret i syslogd-listfiles

mv /var/log/mail.warn.* /var/log/mail.log.* /var/log/daemon.log.* 

/var/log/syslog.* /var/log/archived-logs

Til sidst rette, så savelog også gemmer filerne i denne mappe

# emacs /etc/cron.daily/sysklogd
savelog -g adm -m 640 -u root -c 365 -r archived-logs $LOG >/dev/null

Nu skulle nye roterede filer gemmes på det nye drev, og pladsproblemerne er løst.

Skriv et svar

Din e-mail-adresse vil ikke blive offentliggjort. Krævede felter er markeret med *

*

Disse HTML koder og attributter er tilladte: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>