logrotate可防止日志占满磁盘,通过配置实现按时间或大小轮转。1. Nginx日志每日切割、压缩保留7份,重载服务;2. Node.js日志超100MB切割,保留5份,使用copytruncate适用于无法重启进程场景。

Linux系统中日志文件会不断增长,不加以管理容易占满磁盘空间。logrotate 是 Linux 下用于自动切割、压缩和清理日志文件的工具,能够按大小、时间等条件对日志进行轮转。下面通过一个实际配置实例,展示如何使用 logrotate 按文件类型进行日志切割。
logrotate 通常由 cron 每天自动执行,读取配置文件判断哪些日志需要处理。它可以完成以下操作:
全局配置文件位于 /etc/logrotate.conf,而具体服务的日志规则通常放在 /etc/logrotate.d/ 目录下。新增配置只需在此目录创建对应文件即可。
示例:为 Nginx 和 Node.js 应用配置日志切割创建配置文件 /etc/logrotate.d/nginx:
/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/myapp/app.log,希望超过100MB就切割,最多保留5份。
创建 /etc/logrotate.d/myapp:
/var/log/myapp/app.log {
size 100M
rotate 5
compress
missingok
notifempty
copytruncate
}
关键点:
在正式运行前,可通过以下命令测试配置是否正确:
logrotate -d /etc/logrotate.d/myapp
-d 表示 debug 模式,仅显示将要执行的操作,不会真正修改文件。
强制执行一次轮转(用于验证脚本):
logrotate -f /etc/logrotate.d/nginx
基本上就这些。合理配置 logrotate 可有效防止日志撑爆磁盘,同时保持足够的排查依据。关键是根据服务特点选择合适的切割策略和权限设置。
以上就是Linux日志怎么切割_Linux日志通过logrotate按文件类型切割的配置实例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号