logrotate通过配置文件定义日志轮转规则,按时间或大小切割日志,保留指定数量旧文件并自动删除过期日志,结合cron定期执行,实现自动化管理。

Linux系统中日志文件会随着时间不断增长,占用大量磁盘空间。为了避免日志撑满磁盘,通常使用logrotate工具实现日志的自动切割与清理。logrotate不仅能按天、大小或周期切割日志,还能在保留指定数量的旧日志后自动删除过期文件。
logrotate是一个Linux自带的日志管理工具,通过配置文件定义规则,定期对日志进行轮转(切割)、压缩、删除等操作。它一般由cron每天自动执行,无需手动干预。
核心功能包括:
以应用日志/var/log/myapp.log为例,设置每日切割,保留7份,超过自动删除。
在/etc/logrotate.d/下创建配置文件,例如:
sudo vim /etc/logrotate.d/myapp
写入以下内容:
/var/log/myapp.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 root root
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true
endscript
}
配置完成后,建议先手动测试是否生效。
1. 模拟运行(预览)使用-d参数查看调试信息:
logrotate -d /etc/logrotate.d/myapp
该命令不会实际执行,仅显示将要进行的操作。
2. 强制执行一次轮转确认无误后可强制运行:
logrotate -f /etc/logrotate.d/myapp
执行后检查/var/log/目录下是否生成了myapp.log.1.gz等文件。
logrotate记录每次运行状态在:
/var/lib/logrotate/status
可用以下命令查看:
cat /var/lib/logrotate/status | grep myapp
rotate N和合适的周期,logrotate就能自动完成切割与清理,避免日志堆积。关键是确保rotate数值合理,并定期检查磁盘使用情况。以上就是Linux日志怎么切割_Linux日志利用logrotate实现日志切割后自动清理的设置的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号