Linux

发布于 更新于

AI总结: 本文介绍了logrotate的配置参数及其作用,包括日志的轮转频率、历史文件的保留数量、日志大小限制、压缩选项、邮件通知、文件创建权限等。配置实例展示了如何设置日志文件的轮转规则。测试配置的方法包括检查语法和强制执行轮转。没有明显的错误观点,但需要注意的是,使用copytruncate时应确保日志文件的完整性。

logrotate配置参数一览

参数 作用说明
daily 日志每天轮转
weekly 日志每周轮转
monthly 日志每月轮转
yearly 日志每年轮转
rotate N 仅保留 N 个历史文件,超过自动删除
maxage DAYS 仅保留最近 DAYS 天内日志
size SIZE 日志达到指定大小时轮转(如:50M, 500k)
compress 对旧日志进行压缩
nocompress 不压缩轮转后的旧日志
delaycompress 最近一次轮转日志暂不压缩,等下次轮转时再压缩
missingok 日志文件不存在时不报错
notifempty 如果日志为空则不轮转
ifempty 即使日志为空也轮转
create MODE OWNER GROUP 以指定权限/用户/组创建新日志文件
copytruncate 针对被进程占用的日志,先拷贝后截断
nocopytruncate 备份日志但不截断
mail ADDRESS 轮转后的日志发送到指定邮箱
nomail 不发送备份到邮箱
olddir DIR 轮转文件移动到指定目录,须与当前日志同文件系统
noolddir 轮转文件与当前日志同目录
dateext 轮转后的日志文件名带日期后缀
dateformat 配合 dateext 使用,自定义日期格式(如 -%Y%m%d%s)
tabooext [+] LIST 指定不轮转某些扩展名的文件
prerotate/endscript 轮转前执行脚本(单独成行)
postrotate/endscript 轮转后执行脚本(单独成行)
sharedscripts 全部日志文件轮转完再统一执行一次脚本

配置实例

/log/*.log  
{  
    daily  
    rotate 3  
    nocompress  
    missingok  
    notifempty  
    copytruncate  
    create 0640 root root  
}  

测试配置

  • 检查语法(debug模式,仅校验不实际轮转):

    logrotate -d /path/to/your_rule_file  
    

  • 强制执行轮转(真正进行日志分割):

    logrotate -f /path/to/your_rule_file  
    

  • 加详细输出(可选):

    logrotate -vf /path/to/your_rule_file