There is a log file that I only want to keep 4 days worth of logs for. Here is how you configure logrotate to rotate logs to your specific needs.
Logrotate is a system utility that rotates, compresses and mails system logs as needed on your Linux system. Located in /etc on RHEL based systems, it has default parameters set for certain files, but also allows for you to chose your own files to be rotated, as needed. To configure /var/log/slapd to rotate logs daily and only keep them for 4 days, here are my steps.
Switch to root and vi /etc/logrotate.conf
~ ] # vi /etc/logrotate.conf
At the bottom of the file, there is a section where system-specific logs can be configured for rotation. G$ to get to the end of the file and i for insert. Make a new line and enter the path to the file with opening and closing bracket to place your rotation parameters.
- missingok means that if the file is missing, go to the next one and don’t throw an error.
- notifempty means that the file shouldn’t be rotated if it’s empty.
- maxsize is the max size the file can get before it’s rotated. 20M is the size of the file in megabytes.
- daily means the log file will be rotated every day.
- create 0644 root root means that log file that is rotated, a file will be created with 0644 mode set on the file. The owner and group on the rotated file will be root.
- rotate 4 means that the log will be rotated 4 times before it’s removed from the system.
Close the file, :wq! and run logrotate to see if it’s working.
~ ] # logrotate -v /etc/logrotate.conf
I used the -v switch to see the verbose output of the command.
The output tells you what is happening during the running of the command. It runs against the slapd file and lists the rotation schedule, then says it won’t run against empty files and that old log files will be removed. The file is rotated and a suffix is appended to the old log file. It lists the glob pattern (it resembles regular expressions, but much simpler ) and looks for old files to delete. As you can see, there were none.The file is renamed and a new file is created with the mode you stated. I list the files and as you can see, the file has been rotated and a new, blank is ready for the days logs.
The man pages for logrotate and logrotate.conf are very helpful in this case. Be sure to read them to see how many options you can use to configure your logs to rotate.