Logrotate does not support hourly schedule, but this is an easy task to accomplish.
Create separate directory to store hourly logrotate configuration files.
$ sudo mkdir /etc/logrotate.hourly.d
Create main logrotate configuration file that will read configuration files from designated directory.
$ cat << EOF | sudo tee /etc/logrotate.hourly.conf # packages drop hourly log rotation information into this directory include /etc/logrotate.hourly.d EOF
Set proper permissions.
$ sudo chmod 644 /etc/logrotate.hourly.conf
Create cron configuration to execute logrotate every hour and read main hourly configuration file.
$ cat << EOF | sudo tee /etc/cron.hourly/logrotate #!/bin/bash test -x /usr/sbin/logrotate || exit 0 /usr/sbin/logrotate /etc/logrotate.hourly.conf EOF
Set proper permissions.
$ sudo chmod 775 /etc/cron.hourly/logrotate
Create configuration file to hourly rotate specific log file inside above-mentioned directory.
$ cat << EOF | sudo tee /etc/logrotate.hourly.d/application /var/log/application.log { size 128M rotate 1 copytruncate missingok notifempty nocreate nomail } EOF
Set proper permissions.
$ sudo chmod 644 /etc/logrotate.hourly.d/application
Do not specify weekly
, monthly
or yearly
parameter.