← Back to team overview

sslug-teknik team mailing list archive

Webalizer opdatering ?

 

Hej,

 Da jeg ikke er nogen ørn til crontab og logrotate vil jeg lige høre, om
nogen har et hurtigt hint til hvordan man får det til at køre (uden at
skulle gemme logfiler x måneder tilbage). Jeg formoder, at rotate_logs
scriptet fra webalizer pakken er et godt udgangspunkt - det skal så bare
køres hver nat i stedet for en gang om måneden.

Dernæst vil jeg godt have webalizer kørt mere end en gang i døgnet, f.eks.
hvert. 10., 20. eller 30. minut. rotate_logs.sh kan vel se ud i denne stil:

#!/bin/sh
# define backup names
OLD_ACCESS_LOG=/var/log/httpd/access_log.`date +%y%m%d-%H%M%S`
OLD_ERROR_LOG=/var/log/httpd/error_log.`date +%y%m%d-%H%M%S`
# make end of month copy for analyzer
cp -f /var/log/httpd/access_log /var/log/httpd/access_log.backup
# move files to archive directory
mv /var/log-old/httpd/access_log $OLD_ACCESS_LOG
mv /var/log-old/httpd/error_log $OLD_ERROR_LOG
# restart web server (generate new logfiles)
kill -1 `cat /var/run/httpd.pid`
# compress the archived files
/bin/gzip $OLD_ACCESS_LOG
/bin/gzip $OLD_ERROR_LOG


Ok, nu er spørgsmålet så bare hvordan jeg skal håndtere /var/log/httpd
kataloget i min logrotate.conf eller /etc/logrotate.d/httpd

Næste punkt er crontab filen - det skal vel være noget i stil med (med
kørsel hvert 20. minut):

1 0 * * * root /usr/local/adm/rotate_logs
5,25,45 * * * * root /usr/bin/webalizer -Q -c /etc/webalizer.conf

hvor Webalizer.conf så har incremental sat til yes ? Jeg formoder, at jeg er
nødt til at gøre det på denne måde - med mindre jeg får logrotate til at
kalde webalizer via prerotate før apache's logfiler bliver behandlet af
logrotate ? Men under alle omstændigheder skal jeg jo stadig have en entry i
/etc/crontab for at få kørt webalizer hvert 5. minut .....

Altså i stil med (hvis jeg samtidigt vil gemme 20 ugers logfiler):

/var/log/httpd/access_log {
rotate 20
weekly
missingok
compress
olddir /var/log-old/httpd
prerotate
   /usr/bin/webalizer -Q -c /etc/webalizer.conf
endscript
postrotate
   /usr/bin/killall -HUP httpd
endscript
}

Nogle kommentarer / ideer ??

Mvh.

/Brian Ipsen




Follow ups