Logrotate本身并不直接通过命令行参数来切割日志文件,而是通过配置文件来定义切割规则。以下是如何配置Logrotate进行日志文件分割的步骤和一些具体的配置指令:
- 编辑配置文件: Logrotate的主配置文件通常是
/etc/logrotate.conf
,但你也可以在/etc/logrotate.d/
目录下创建额外的配置文件来处理特定服务的日志。 - 配置指令: 在配置文件中,你可以使用以下指令来定义日志文件的处理规则:
-
rotate
: 定义日志文件旋转的次数。例如,rotate 7
表示保留最近7个版本的日志文件。 -
daily
,weekly
,monthly
: 设置日志旋转的周期。例如,daily
表示每天进行一次日志旋转。 -
size
: 根据文件大小来旋转日志。例如,size 1M
表示当文件达到1MB大小时进行旋转。 -
compress
: 旋转后的日志文件会被压缩。 -
delaycompress
: 延迟压缩,即新创建的日志文件不立即压缩,直到下次旋转时才压缩。 -
missingok
: 如果日志文件不存在,则跳过该文件,不会报错。 -
notifempty
: 即使日志文件为空也进行旋转。 -
postrotate
: 执行旋转后的一系列命令,例如重启服务以使其开始写入新的日志文件。 -
endscript
: 结束postrotate
或prerotate
脚本。
- 配置文件示例: 下面是一个简单的Logrotate配置文件示例:
- /etc/logrotate.conf:主配置文件
- /etc/logrotate.d/:为配置相关子系统,用于隔离每个应用配置(Nginx、PHP、Tomcat...)
- 测试和运行Logrotate:
- 使用
-d
选项来测试配置文件是否有语法错误:logrotate -d /etc/logrotate.conf
- 使用
-f
或--force
选项强制运行logrotate,即使日志文件未达到旋转条件:logrotate -f /etc/logrotate.conf
- Crontab调度: Logrotate通常由cron作业定期执行。你可以检查
/etc/crontab
或/etc/cron.daily/
目录下的相关条目,确认logrotate是否已经设置了定期运行。
按分钟级配置文件
logrotate不支持分钟级分割,可通过定时任务执行分割
例:*/1 * * * * root logrotate -f /etc/logrotate.conf
请确保在修改任何配置文件之前备份原始文件,并在修改后测试配置的有效性,以避免意外中断日志记录过程。