💡
原文英文,约300词,阅读约需1分钟。
📝
内容提要
logrotate服务出现错误,因systemd的ProtectSystem设置为full,导致/usr目录只读。手动执行logrotate正常,但定时任务失败。解决方法是修改logrotate.service文件,添加ReadWritePaths=/usr/local/tomcat/logs,重启服务即可。
🎯
关键要点
- logrotate服务在systemd定时任务中失败,手动执行正常。
- 错误信息显示为只读文件系统,检查权限后仍然存在问题。
- 问题源于logrotate.service配置文件中的ProtectSystem设置为full,导致/usr目录只读。
- 可以通过在logrotate.service文件中添加ReadWritePaths来解决此问题。
- 修改后需执行systemctl daemon-reload和systemctl restart logrotate.service以应用更改。
❓
延伸问答
logrotate服务失败的原因是什么?
logrotate服务失败是因为systemd的ProtectSystem设置为full,导致/usr目录变为只读。
如何解决logrotate服务的只读文件系统问题?
可以通过在logrotate.service文件中添加ReadWritePaths=/usr/local/tomcat/logs来解决此问题。
手动执行logrotate时是否会出现问题?
手动执行logrotate时是正常的,但定时任务失败。
修改logrotate.service文件后需要执行哪些命令?
修改后需执行systemctl daemon-reload和systemctl restart logrotate.service以应用更改。
ProtectSystem设置为full的影响是什么?
ProtectSystem设置为full会将/usr、/boot和/etc目录挂载为只读,禁止对系统的修改。
logrotate服务的错误信息是什么?
错误信息显示为:error opening /usr/local/tomcat/logs/catalina.out: Read-only file system。
➡️