直接在/etc/logrotate.d/下新建独立配置文件即可生效,无需修改主配置或重启服务;关键参数包括daily、rotate 30、compress、copytruncate、create 0644 myapp myapp等,配合logrotate -f可立即测试。

直接在 /etc/logrotate.d/ 下新建配置文件即可,不用改主配置,也不用重启服务。
创建独立的配置文件
为避免干扰系统全局设置,推荐为每个应用单独建一个配置文件,比如你的程序日志在 /opt/myapp/logs/app.log,就执行:
-
新建文件:
sudo nano /etc/logrotate.d/myapp - 写入规则(按需调整):
/opt/myapp/logs/app.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0644 myapp myapp
copytruncate
}
其中 copytruncate 很关键——它先复制日志内容再清空原文件,适合无法重载或重启的应用(如 Java 后台进程),避免因日志句柄丢失导致写入失败。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
关键参数说明
这些选项不是可有可无,而是根据实际场景选配:
-
触发条件:用
daily、weekly或size 100M(任选其一,不要混用) -
保留策略:
rotate 30表示最多存 30 个轮转文件;搭配maxage 90可额外限制最老日志不超过 90 天 -
权限与归属:
create 0644 myapp myapp确保新日志能被应用继续写入,权限错会导致“Permission denied” -
安全兜底:
missingok防止首次运行时日志还没生成就报错;notifempty避免空文件占位浪费
测试与生效
写完别急着等明天,立刻验证是否有效:
-
语法检查:
logrotate -d /etc/logrotate.d/myapp(只模拟,不执行) -
强制运行一次:
logrotate -f /etc/logrotate.d/myapp,观察/opt/myapp/logs/下是否生成app.log.1和压缩包 -
确认状态:
cat /var/lib/logrotate.status | grep myapp查看最近轮转时间
轮转后通知应用(可选但重要)
有些程序不会自动识别新日志文件,需要手动刷新。可在配置中加入 postrotate:
- 如果应用支持信号重载日志:
kill -USR1 $(cat /var/run/myapp.pid) - 如果是 systemd 服务:
systemctl kill --signal=USR1 myapp.service - 注意加
sharedscripts(多个日志共用同一段脚本时)或去掉(单文件时更清晰)










