Linux命令之logrotate命令

logrotate是一个用于自动化管理大量日志文件的工具,支持定期旋转、压缩、删除和邮件通知。它通常作为cron作业每天运行。配置文件决定了日志处理的规则,如每天、每周或按大小处理。使用示例包括:查看帮助、版本、模拟执行、强制执行、指定状态文件、详细输出、记录日志和查看执行记录。重要文件包括默认执行状态存储文件和配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、命令简介

  logrotate旨在简化生成大量日志文件的系统的管理。它允许自动旋转、压缩、删除和邮寄日志文件。每个日志文件可以每天、每周、每月处理,也可以在其增长过大时处理。
  通常,logrotate作为日常cron作业运行。除非日志的标准是:根据日志的大小,logrotate每天运行一次以上,或者除非使用-f或–force选项。
  可以在命令行上给出任意数量的配置文件。稍后的配置文件可能会覆盖先前文件中给出的选项,因此logrotate配置文件的列出顺序很重要。通常,应使用包含所需任何其他配置文件的单个配置文件。如果在命令行上指定了一个目录,则该目录中的每个文件都将用作配置文件。
  如果没有给出命令行参数,logrotate将打印版本和版权信息,以及简短的使用摘要。如果在旋转日志时发生任何错误,logrotate将以非零状态退出。

二、使用示例

  关于logrotate的完整使用示例及配置文件参数说明见Linux之tomcat应用日志分割(基于logrotate)。命令使用示例主要介绍命令的语法、任务执行报错、任务执行失效情况下的问题排查。

1、获取命令帮助

[root@s142 logrotate.d]# logrotate --help
在这里插入图片描述

2、查看命令版本

[root@s142 logrotate.d]# logrotate --version
logrotate 3.8.6

3、-d 模拟测试执行

[root@s142 logrotate.d]# cat test
/var/log/logtest/catalina.out {
daily
minsize 10M
missingok
rotate 26
compress
copytruncate
delaycompress
notifempty
create 640 root root
dateext
}
[root@s142 logrotate.d]# logrotate -d test
在这里插入图片描述

4、-f 强制执行日志分割

[root@s142 logrotate.d]# logrotate -f test
在这里插入图片描述

5、-s 执行状态指定输出

[root@s142 logrotate.d]# logrotate -s /tmp/log.txt bootlog
[root@s142 logrotate.d]# cat /tmp/log.txt
logrotate state – version 2
“/var/log/boot.log” 2022-9-14-14:0:0
“/var/log/logtest/catalina.out” 2022-9-14-14:0:0
[root@s142 logrotate.d]# logrotate -s /tmp/log.txt -f test
[root@s142 logrotate.d]# cat /tmp/log.txt
logrotate state – version 2
“/var/log/boot.log” 2022-9-14-14:0:0
“/var/log/logtest/catalina.out” 2022-9-14-14:47:47

6、-v 输出日志分割执行的详细信息

[root@s142 logrotate.d]# logrotate -s /tmp/log.txt -vf test
在这里插入图片描述

7、-l 将执行日志存入指定文件

[root@s142 logrotate.d]# logrotate -l 1.log test
[root@s142 logrotate.d]# cat 1.log
reading config file test
Allocating hash table for state file, size 15360 B

Handling 1 logs

rotating pattern: /var/log/logtest/catalina.out after 1 days (26 rotations)
empty log files are not rotated, only log files >= 10485760 bytes are rotated, old logs are removed
considering log /var/log/logtest/catalina.out
log does not need rotating (log has been already rotated)[root@s142 logrotate.d]#

8、查看logrotate执行记录

[root@s142 logrotate.d]# logrotate -v /etc/logrotate.conf
reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file bootlog
reading config file chrony
reading config file syslog
reading config file test
reading config file wpa_supplicant
reading config file yum
Allocating hash table for state file, size 15360 B

在这里插入图片描述

三、使用语法及从参数说明

1、使用语法

用法:logrotate [OPTION…]

2、参数说明

参数参数说明
-d, --debug调试用,打印执行结果,不会真正执行;
-f, --force强制执行,用于刚添加或修改任务或历史切割文件被删除后,强制执行切割(每天只执行一次)。
-m, --mail=command指定logrotate发送邮件时使用的命令,该命令需接收两个参数:邮件主题;邮件接收人。该命令必须阅读标准输入上的消息并将其邮寄给收件人。默认命令:/bin/mail -s 。测试使用失败,如果有知道的朋友欢迎留言告知,谢谢!
-s, --state=statefile指定记录logrotate执行结果的文件,在使用特定用户执行logrotate时较有用。
-v, --verbose开启详细模式。
-l, --log=STRING指定执行日志记录文件
–version查看命令版本
-?, --help获取命令帮助信息
–usage开启详细模式。

3、重要文件

  • 默认执行状态存储文件:/var/lib/logrotate/logrotate.status
  • 配置文件:/etc/logrotate.conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒悦sunsite

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值