Yes, I did the test in my test server.
Thanks for the help so far
1. /etc/logrotate.d/nagios
Code: Select all
/var/log/nagios/nagios.log {
olddir /var/log/nagios/archives2
daily
missingok
notifempty
create 644 nagios nagios
nocompress
rotate 1
postrotate
datetime=$(date +%m-%d-%Y)
mv nagios.log.1 /var/log/nagios/archives2/nagios-$datetime-00.log
/usr/bin/systemctl reload nagios > /dev/null 2>/dev/null || true
endscript
}
2. Here is the debug output
Code: Select all
[root@nagiost01 nagios]# logrotate -df /etc/logrotate.d/nagios
reading config file /etc/logrotate.d/nagios
reading config info for /var/log/nagios/nagios.log
olddir is now /var/log/nagios/archives2
Handling 1 logs
rotating pattern: /var/log/nagios/nagios.log forced from command line (1 rotations)
olddir is /var/log/nagios/archives2, empty log files are not rotated, old logs are removed
considering log /var/log/nagios/nagios.log
log needs rotating
rotating log /var/log/nagios/nagios.log, log->rotateCount is 1
dateext suffix '-20150803'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/nagios/archives2/nagios.log.1 to /var/log/nagios/archives2/nagios.log.2 (rotatecount 1, logstart 1, i 1),
renaming /var/log/nagios/archives2/nagios.log.0 to /var/log/nagios/archives2/nagios.log.1 (rotatecount 1, logstart 1, i 0),
renaming /var/log/nagios/nagios.log to /var/log/nagios/archives2/nagios.log.1
creating new /var/log/nagios/nagios.log mode = 0644 uid = 492 gid = 488
running postrotate script
running script with arg /var/log/nagios/nagios.log: "
datetime=$(date +%m-%d-%Y)
mv nagios.log.1 /var/log/nagios/archives2/nagios-$datetime-00.log
/sbin/service nagios reload > /dev/null 2>/dev/null || true
"
removing old log /var/log/nagios/archives2/nagios.log.2
[root@nagiost01 nagios]#
3. I had to use touch to create nagios.log.1 and nagios.log.2 file to get above output without error message.
but 2. did not create expected /var/log/nagios/archives2/nagios-08-03-15-00.log file in /var/log/nagios/archives2/
Code: Select all
[root@nagiost01 nagios]# ls -l /var/log/nagios/archives2/
total 0
-rw-r--r-- 1 nagios nagios 0 Aug 3 12:02 nagios.log.1
-rw-r--r-- 1 nagios nagios 0 Aug 3 11:58 nagios.log.2
[root@nagiost01 nagios]#
4. Here is what happened if removed nagios.log.1 and 2
Code: Select all
[root@nagiost01 nagios]# logrotate -df /etc/logrotate.d/nagios
reading config file /etc/logrotate.d/nagios
reading config info for /var/log/nagios/nagios.log
olddir is now /var/log/nagios/archives2
Handling 1 logs
rotating pattern: /var/log/nagios/nagios.log forced from command line (1 rotations)
olddir is /var/log/nagios/archives2, empty log files are not rotated, old logs are removed
considering log /var/log/nagios/nagios.log
log needs rotating
rotating log /var/log/nagios/nagios.log, log->rotateCount is 1
dateext suffix '-20150803'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/nagios/archives2/nagios.log.1 to /var/log/nagios/archives2/nagios.log.2 (rotatecount 1, logstart 1, i 1),
renaming /var/log/nagios/archives2/nagios.log.0 to /var/log/nagios/archives2/nagios.log.1 (rotatecount 1, logstart 1, i 0),
renaming /var/log/nagios/nagios.log to /var/log/nagios/archives2/nagios.log.1
creating new /var/log/nagios/nagios.log mode = 0644 uid = 492 gid = 488
running postrotate script
running script with arg /var/log/nagios/nagios.log: "
datetime=$(date +%m-%d-%Y)
mv nagios.log.1 /var/log/nagios/archives2/nagios-$datetime-00.log
/usr/bin/systemctl reload nagios > /dev/null 2>/dev/null || true
"
removing old log /var/log/nagios/archives2/nagios.log.2
error: error opening /var/log/nagios/archives2/nagios.log.2: No such file or directory
[root@nagiost01 nagios]#