logrotate是Linux日志管理核心工具,通过配置文件定义轮转规则,支持按时间或大小切割日志,自动执行压缩、归档与删除,结合cron定期运行,确保日志高效管理且不占用过多磁盘空间。

Linux系统中日志文件会随着时间不断增长,过大的日志不仅占用磁盘空间,还会影响排查问题的效率。因此,合理地进行日志切割非常必要。最常用且高效的方法是使用 logrotate 工具,它能自动按时间或大小对日志进行轮转、压缩、归档和删除旧日志。
logrotate 是 Linux 发行版中预装的日志管理工具,通常每天由 cron 自动调用执行。它读取配置文件,判断哪些日志需要处理,并根据规则执行以下操作:
所有行为都通过配置文件定义,灵活且无需手动干预。
logrotate 的主配置文件通常是 /etc/logrotate.conf,而具体服务的日志规则放在 /etc/logrotate.d/ 目录下。例如 Nginx、Apache、MySQL 等都会在此目录添加自己的配置文件。
一个典型的日志切割配置如下:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx > /dev/null 2>&1 || true
endscript
}
各参数说明:
除了按天切割,还可以根据日志大小触发轮转。适用于访问频繁、日志增长快的服务。
示例配置:
/var/log/app/myapp.log {
size 100M
rotate 5
compress
missingok
notifempty
create 644 appuser appgroup
postrotate
kill -USR1 $(cat /var/run/myapp.pid)
endscript
}
当日志达到 100MB 时就会触发轮转,最多保留 5 份备份。
在修改配置后,建议先手动测试是否生效:
查看 logrotate 如何处理某个配置:
logrotate -d /etc/logrotate.d/myapp
-d 表示 debug 模式,不会真正执行,仅显示过程。
强制执行一次轮转(用于验证):
logrotate -f /etc/logrotate.d/myapp
-f 表示强制运行,即使未到触发条件。
检查系统日志确认是否有错误:
tail /var/log/syslog | grep logrotate
或查看 journal 日志:
journalctl -u logrotate
以上就是Linux如何进行日志切割_Linux日志切割的实用配置方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号