Linux下使用logrotate管理日志文件 自动切割与压缩配置

轻丽酱_6306

轻丽酱_6306

2026-04-17

768人浏览

原创

logrotate配置文件位于/etc/logrotate.conf及其包含的/etc/logrotate.d/目录下,修改后无需重启,由cron每日调用;可通过logrotate -d调试、-f强制执行。

linux下使用logrotate管理日志文件 自动切割与压缩配置

logrotate配置文件写在哪、怎么加载

logrotate不会自动扫描任意位置的配置,它只认固定路径:/etc/logrotate.conf 是主配置,所有/etc/logrotate.d/ 下的文件都会被包含进来。别把配置丢到/usr/local/etc/ 或家目录,它压根不读。

修改后无需重启服务——logrotate本身无守护进程,靠cron每天调用一次。你可以手动测试是否生效:logrotate -d /etc/logrotate.conf(-d 是调试模式,只打印动作不真执行);确认无误再加 -f 强制运行一次:logrotate -f /etc/logrotate.conf。

  • 生产环境别直接用 -f,避免和 cron 冲突导致重复切割
  • 如果日志路径含空格或特殊字符,必须用引号包裹整个路径
  • include /etc/logrotate.d 这行默认就在 /etc/logrotate.conf 末尾,删了就失效

按大小还是按时间切割?daily weekly monthly rotate的区别

daily、weekly、monthly 控制的是「触发切割的周期」,不是「保留多少份」;真正管保留份数的是 rotate N。比如 daily + rotate 7,意思是每天检查一次,只要当天日志有增长就切,最多留7个归档文件。

但有些服务(如Nginx访问日志)流量不均,可能某天没请求,就不该切;这时用 size 100M 更合理——只要当前日志超过100MB就立即切,无视时间。两者可共存,满足任一条件即触发。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • size 后单位必须是 K、M 或 G(大小写敏感),size 100m 会报错
  • daily 不等于“每天0点切”,而是“每天cron运行时检查是否该切”,实际时间取决于你的 /etc/cron.daily/logrotate
  • 混合使用 daily 和 size 50M 时,logrotate优先检查 size,满足即切,不等时间点

压缩与旧日志清理的关键参数:compress、delaycompress、missingok

compress 默认用 gzip,切完立刻压缩;但如果你启用了 copytruncate(常见于不能停服务的场景),就得配 delaycompress:本次切出来的不压,等下次切时才压上一轮的——否则刚 truncate 完,程序还在往新文件写,你却立刻 gzip,可能压到空文件或损坏内容。

missingok 很关键:当指定的日志路径不存在(比如服务刚装好还没产生日志),没有它,logrotate 会报错并中断后续所有配置处理;加上它就跳过,不声不响继续。

  • 不要以为 compress 能省空间就全开——高频小日志(如 debug 级别)压缩反而拖慢 I/O,且解压查看更麻烦
  • compresscmd 和 compressext 可换压缩工具,比如 compresscmd /usr/bin/zstd + compressext .zst
  • notifempty 建议始终加上,空文件不切,避免生成一堆 app.log.1 → app.log.2 的空归档

权限与用户问题:create 0644 www-data www-data 失败的原因

create 参数用于切割后重建原始日志文件,并设权限和属主。但它只在 logrotate 自己创建文件时生效;如果原日志是 root 创建、服务以 www-data 身份追加写入,而你配了 create 0644 www-data www-data,logrotate 会尝试用 www-data 用户去创建文件——失败,因为非 root 用户无法在 /var/log/ 下建文件。

正确做法是:让 logrotate 以 root 身份运行(默认如此),然后用 create 指定目标属主。例如 Nginx 日志通常由 root 启动,但 worker 进程以 www-data 身份写日志,所以应写:create 0644 root www-data,确保文件可被 worker 进程写入。

  • 如果服务自己管理日志权限(如 systemd-journald),别乱用 create,可能覆盖其行为
  • su 指令可用于切换用户执行脚本(如 postrotate),但不能用于 create 的属主设置
  • 不确定属主时,先查现有日志:ls -l /var/log/nginx/access.log,照着配
logrotate 的坑多数不在语法,而在和具体服务的协作逻辑——比如是否支持 reopen、是否接受信号、日志路径是否被硬编码。配完一定要看 logrotate -d 输出里有没有 warning,尤其注意 “error: skipping” 或 “file not found” 类提示。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3970

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3413

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2573

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6230

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5862

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3433

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2925

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3159

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习