I followed this link to change log-rotate configuration for RHEL 6
After I made the change to config file, what should I do to let this take effect?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communitylogrotate
uses crontab
to work. It's scheduled work, not a daemon, so no need to reload its configuration.
When the crontab
executes logrotate
, it will use your new config file automatically.
If you need to test your config you can also execute logrotate
on your own with the command:
logrotate /etc/logrotate.d/your-logrotate-config
Or as mentioned in comments, identify the refer to slm's answer to have a precise cron.daily explanationlogrotate
line in the output of the command crontab -l
and execute the command line
logrotate
is scheduled to run once a day.
Feb 20, 2014 at 17:12
logrotate
has a -d
option for testing (or "debugging"), I'd recommend running it at least once with that.
Feb 23, 2017 at 16:52
su root syslog
. Which brings logrotate to a halt when not added in. To top off people's frustration, when they add the directive, and then run (force) logrotate, it continues to spit out "error: skipping "/var/log/syslog" because parent directory has insecure permissions (It's world writable or writable by group which is not "root" ...
" for 20 hrs after the config change, as if the the settings/process are cached!? If you are stuck there, chgrp on /var/log to root, run logrotate, chgrp back to syslog. It will clear up by next run
Most of the logrotate
setups I've seen on various distros runs out of the /etc/cron.daily
. There's a shell script there aptly named logrotate
.
$ ls -l /etc/cron.daily/logrotate
-rwxr-xr-x 1 root root 180 May 18 2011 /etc/cron.daily/logrotate
If you want to make it run manually simply run the script as root:
$ sudo /etc/cron.daily/logrotate
If you take a look at a script that's typically there, it shows you how you can also run logrotate
manually, by simply running logrotate
+ the path to its configuration file.
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
It should be automatic via cron. You can force it to test your changes.
For global logrotate:
sudo logrotate -v -f /etc/logrotate.conf
For a single conf file:
sudo logrotate -v -f /etc/logrotate.d/someapp.conf
-f
for force rotation, there is also -d
for debug, which is also Dry run, it will print everything it would have done but not actually do it.
Feb 22, 2016 at 23:37
On my CentOS 6.5 machine for setting up logrotatefor nginx I had to do this:
logrotate /etc/logrotate.d/nginx
And then I checked if logrotate taking care of my new nginx config like this:
cat /var/lib/logrotate.status