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

` 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 ` 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](http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg376050.html), 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-mailadresse vil ikke blive publiceret.