Linux命令之logrotate命令
  TEZNKK3IfmPf 2023年11月13日 26 0

一、命令简介

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

二、使用示例

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

1、获取命令帮助

[root@s142 logrotate.d]# logrotate --help
Linux命令之logrotate命令

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
Linux命令之logrotate命令

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

[root@s142 logrotate.d]# logrotate -f test
Linux命令之logrotate命令

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
Linux命令之logrotate命令

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

Linux命令之logrotate命令

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

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
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   51   0   0 linux服务器
  TEZNKK3IfmPf   2024年05月31日   29   0   0 linux服务器centos
  TEZNKK3IfmPf   2024年05月31日   29   0   0 linuxbind
  TEZNKK3IfmPf   2024年05月31日   39   0   0 linuxshell
TEZNKK3IfmPf