logrotate通过按时间或大小条件自动轮转、压缩、删除日志,结合postrotate脚本通知服务重新打开日志文件,实现Nginx和Tomcat等服务的精细化日志管理,有效控制磁盘占用并提升系统稳定性。

Linux系统中日志文件会随着时间不断增长,若不及时处理,可能占用大量磁盘空间,影响系统性能。logrotate 是 Linux 下用于管理日志文件的工具,能自动完成日志轮转、压缩、删除旧日志等操作。本文通过一个按服务状态(如 Nginx、Tomcat 等)进行日志切割的配置实例,说明如何使用 logrotate 实现精细化的日志管理。
logrotate 通常由 cron 每天自动调用执行,读取配置文件并判断哪些日志需要轮转。其核心机制包括:
下面以 Nginx 和 Tomcat 为例,展示如何为不同服务单独配置 logrotate 规则。
Nginx 日志切割配置创建配置文件:/etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0644 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
说明:
Tomcat 日志通常位于 /opt/tomcat/logs/,例如 catalina.out。
创建配置文件:/etc/logrotate.d/tomcat
/opt/tomcat/logs/catalina.out {
copytruncate
daily
rotate 14
compress
missingok
notifempty
size 100M
}
说明:
注意:Tomcat 本身不会自动重新打开日志文件,因此使用 copytruncate 更安全,但存在极小概率丢失写入数据。
在正式运行前,建议先测试配置是否正确:
如果发现日志未按预期轮转,检查权限、路径是否存在以及 postrotate 脚本是否有错误。
基本上就这些。合理配置 logrotate 能有效控制日志体积,提升系统稳定性。每个服务可根据访问量和日志重要性调整轮转策略。以上就是Linux日志怎么切割_Linux日志通过logrotate按服务状态切割的配置实例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号