Apache log rotate in Ubuntu

Posted under » Ubuntu » Apache on 08 Jan 2023

Ever since Hardy Heron, Ubuntu implemented logrotate.d on Apache and Mysql. You may find the configuration for apache here.

/etc/logrotate.d/apache2

For ubuntu 22.04 it may look like this

/var/log/apache2/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    prerotate
	if [ -d /etc/logrotate.d/httpd-prerotate ]; then
	    run-parts /etc/logrotate.d/httpd-prerotate
	fi
    endscript
    postrotate
	if pgrep -f ^/usr/sbin/apache2 > /dev/null; then
	    invoke-rc.d apache2 reload 2>&1 | logger -t apache2.logrotate
	fi
    endscript
}

It could be daily or weekly or monthly. If it is weekly, then files are created very Sunday. So if you have 5 Sundays in a month, you will have 5 files.

After 2 weeks, it compresses the file into a .gz to save space. Therefore if its still one week's old (.log.1) it won't gz the file yet.

The weekly files are numbered according to age and this is what the term "logrotate" comes about. To delete the older log, you delete the largest number.

Not sure about the sharedscripts part though.

web security linux ubuntu python django git Raspberry apache mysql php drupal cake javascript css AWS IOT