Centos/Linux setting logrotate to maximum file size for all logs
It specifies the size of the log file to trigger rotation. For example size 50M
will trigger a log rotation once the file is 50MB or greater in size. You can use the suffix M
for megabytes, k
for kilobytes, and G
for gigabytes. If no suffix is used, it will take it to mean bytes. You can check the example at the end. There are three directives available size
, maxsize
, and minsize
. According to manpage:
minsize size
Log files are rotated when they grow bigger than size bytes,
but not before the additionally specified time interval (daily,
weekly, monthly, or yearly). The related size option is simi-
lar except that it is mutually exclusive with the time interval
options, and it causes log files to be rotated without regard
for the last rotation time. When minsize is used, both the
size and timestamp of a log file are considered.
size size
Log files are rotated only if they grow bigger then size bytes.
If size is followed by k, the size is assumed to be in kilo-
bytes. If the M is used, the size is in megabytes, and if G is
used, the size is in gigabytes. So size 100, size 100k, size
100M and size 100G are all valid.
maxsize size
Log files are rotated when they grow bigger than size bytes even before
the additionally specified time interval (daily, weekly, monthly,
or yearly). The related size option is similar except that it
is mutually exclusive with the time interval options, and it causes
log files to be rotated without regard for the last rotation time.
When maxsize is used, both the size and timestamp of a log file are
considered.
Here is an example:
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail www@my.org
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
Here is an explanation for both files /var/log/httpd/access.log
and /var/log/httpd/error.log
. They are rotated whenever it grows over 100k in size, and the old logs files are mailed (uncompressed) to www@my.org
after going through 5 rotations, rather than being removed. The sharedscripts
means that the postrotate
script will only be run once (after the old logs have been compressed), not once for each log which is rotated. Note that the double quotes around the first filename at the beginning of this section allows logrotate to rotate logs with spaces in the name. Normal shell quoting rules apply, with ,
, and \
characters supported.
How to set max file size in Linux CeNTOS to server.log
You can use logrotate to deal with log files.
It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.
It has a size option, so you can configure it to stay under 500MB for your "server.log"
Logrotate daily+maxsize is not rotating
The problem was related to the SELinux file type of the log files, which were located in a directory different from /var/log, meaning that the logrotate process didn't have access to perform its tasks. I found this other SO thread as well as this Redhat page that helped to solve the issue. I found the Redhat documentation very helpful, so I provide here 2 links:
- 5.9.3. CHECKING THE DEFAULT SELINUX CONTEXT
- 5.6.2. PERSISTENT CHANGES: SEMANAGE FCONTEXT
Unlimited logs with logrotate
From UNIX logrotate man page:
rotate count
Log files are rotated times before being removed or mailed to the
address specified in a mail directive. If count is 0, old versions are
removed rather then rotated.
So I guess you need to write a huge number to work.
Related Topics
Executing String Sent from One Terminal in Another in Linux Pseudo-Terminal
How to Correctly Cleanup and Re-Use Sysv Shared Memory Segments
How Does the Linux Kernel Determine the Order of _Init Calls
How to Dump Part of Binary File
Best File System for Serving 1Gb Files Using Nginx, Under Moderate Write, Read Performance-Wise
In Sshd Configuration What Does "Maxstartups 10:30:60" Mean
How to Remove Jenkins Completely from Linux
How and When to Use /Dev/Shm for Efficiency
End of Line (New Line) Escapes in Bash
Loading Module on Keyboard Hotplug
Running Apt-Get for Another Partition/Directory
How to Install Mono 4.0.1 on Debian 8
What Is Active Memory and Inactive Memory
How to Preserve Command Line Spaces in a Linux Application
How to Make Find and Printf Works in Bash Script
For Loop in Bash Simply Prints N Times the Command Instead of Reiterating
Different File Owner Inside Docker Container and in Host MAChine