logrotate 的作用、/etc/logrotate.conf 和 /etc/logrotate.d 中的配置原理,以及如何安全地测试规则。
logrotate 是一个 Linux 工具,用于对日志文件进行轮转、压缩和删除,以防它们填满磁盘。它通常由 systemd 定时器或 cron 任务每天运行一次,读取 /etc/logrotate.conf 以及 /etc/logrotate.d/ 中的各软件包规则。
规则指定了一个或多个日志文件以及诸如 daily 或 weekly(频率)、rotate 7(保留多少个旧文件)、compress(用 gzip 压缩旧文件)、missingok(文件不存在时不报错)、notifempty(跳过空日志)以及 postrotate ... endscript(轮转后运行的命令,例如重新打开日志)等指令。
有些程序会持续写入同一个打开的文件。copytruncate 会复制日志然后截断原文件,而不是移动它,因此程序可以保留其文件句柄;在复制期间写入的少数几行可能会丢失。
'logrotate -d /etc/logrotate.conf' 在调试模式下运行,仅打印将要发生的操作。'-f' 强制执行轮转,即使未到期也是如此。
/etc/logrotate.d/myapp 并写入日志路径和指令,例如 weekly、rotate 4、compress、missingok、notifempty。sudo logrotate -d /etc/logrotate.d/myappsudo logrotate -f /etc/logrotate.d/myapp最后更新: 2026-10-08
如何使用 journalctl 读取日志、检查日志占用的空间大小,并通过 --vacuum 选项安全地缩减日志大小。
如何使用 du 和交互式的 ncdu 查找 Linux 磁盘中被占满的内容,并提供保留在单个文件系统中的选项。
cron 如何运行计划任务、五个 crontab 时间字段、系统 cron 文件的存放位置以及与 systemd 定时器的对比。