Home  >  Article  >  System Tutorial  >  How to use logrotate to manage Linux log files

How to use logrotate to manage Linux log files

WBOY
WBOYforward
2024-02-10 11:00:04701browse

Log files in Linux systems are important resources for recording system operation and troubleshooting. However, as time goes by, log files will continue to grow, occupying a large amount of disk space, and are not conducive to log viewing and analysis. In order to solve this problem, we can use the logrotate tool to automatically rotate, compress, delete, and send emails to log files to achieve effective management of log files. This article will introduce the basic principles, configuration files and common options of the logrotate tool, as well as how to configure logrotate strategies for different applications.

How to use logrotate to manage Linux log files

How logrotate works

By default, the logrotate command is run once a day as a cron task placed in /etc/cron.daily. It will help you set a policy in which log files exceeding a certain time or size are rotated.
Order:

/usr/sbin/logrotate

Configuration file: /etc/logrotate.conf, this is the main configuration file of logrotate. logrotate also stores service-specific configuration in /etc/logrotate.d/. Make sure the line below is included in /etc/logrotate.conf to read service-specific log configuration.

include  /etc/logrotate.d`

logrotate history: /var/lib/logrotate.status

Important logrotate options:

compress             --> 压缩日志文件的所有非当前版本
daily,weekly,monthly --> 按指定计划轮换日志文件
delaycompress        --> 压缩所有版本,除了当前和下一个最近的
endscript            --> 标记 prerotate 或 postrotate 脚本的结束
errors "emailid"     --> 给指定邮箱发送错误通知
missingok            --> 如果日志文件丢失,不要显示错误
notifempty           --> 如果日志文件为空,则不轮换日志文件
olddir "dir"         --> 指定日志文件的旧版本放在 “dir” 中
postrotate           --> 引入一个在日志被轮换后执行的脚本
prerotate            --> 引入一个在日志被轮换前执行的脚本
rotate 'n'           --> 在轮换方案中包含日志的 n 个版本
sharedscripts        --> 对于整个日志组只运行一次脚本
size='logsize'       --> 在日志大小大于 logsize(例如 100K,4M)时轮换

Configuration

Let's configure logrotate for our own sample log file /tmp/sample_output.log.

Step one: Add the following lines to /etc/logrotate.conf.

/tmp/sample_output.log {
  size 1k
  create 700 root root
  rotate 4
  compress
}

In the above configuration file:

size 1k - logrotate 仅在文件大小等于(或大于)此大小时运行。
create - 轮换原始文件并创建具有指定权限、用户和组的新文件。
rotate - 限制日志文件轮转的数量。因此,这将只保留最近的 4 个轮转的日志文件。
compress - 这将压缩文件。

Step 2: Usually, you need to wait a day for logrotate to be executed by /etc/cron.daily. Otherwise, you can run it from the command line with:

/usr/sbin/logrotate  /etc/logrotate.conf

Output before executing logrotate command:

[root@rhel1 tmp]# ls -l /tmp/
total 28
-rw-------. 1 root root 20000 Jan 1 05:23 sample_output.log

Output after executing logrotate:

[root@rhel1 tmp]# ls -l /tmp
total 12
-rwx------. 1 root root 0 Jan 1 05:24 sample_output.log
-rw-------. 1 root root 599 Jan 1 05:24 sample_output.log-20170101.gz
[root@rhel1 tmp]#

This will confirm that logrotate is successfully implemented.

Through the introduction of this article, we understand the function and usage of the logrotate tool, and how to customize the logrotate strategy according to different needs. The logrotate tool can help us save disk space, improve the readability and usability of log files, and also facilitate us to back up and monitor log files. The logrotate tool is a very practical log management tool in Linux systems and is worth mastering and using.

The above is the detailed content of How to use logrotate to manage Linux log files. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lxlinux.net. If there is any infringement, please contact admin@php.cn delete