Logrotate-Config für VHosts automatisch erstellen
Mit diesem Script erzeuge ich für alle Virtuellen-Hosts eines Apache2-Webservers eine Konfiguration für Logrotate.
Hierzu lese ich die VHost-Konfigurationen in /data/sites
ein und parse daraus
die Pfade zu den Logfiles.
Anschließend erzeuge ich mit Hilfe eines Templates die eigentliche
Konfigurations-Datei im logrotate.d
-Ordner.
logrotate-config.sh
#!/bin/bash
CONFDIR=/data/sites/
TEMPLATE=/data/sites/logrotate.conf.template
OUTFILE=/etc/logrotate.d/`hostname`-apache
echo "# DO NOT EDIT!" > $OUTFILE
echo "# automatically generated by $0 on `date`" >> $OUTFILE
echo "" >> $OUTFILE
for i in `cat $CONFDIR/*.conf | grep -i -E "(Transfer|Error|Custom)Log" | awk '{ print $2; }' | sort | uniq`
do
echo -n "$i " >> $OUTFILE
done;
echo $OUTFILE
cat $TEMPLATE >> $OUTFILE
cat $OUTFILE
/data/sites/logrotate.conf.template
{
missingok
notifempty
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null 2>&1 || true
endscript
rotate 9999999
}