logrotate工具可自动切割、压缩、备份和清理日志文件,防止磁盘空间耗尽。通过/etc/logrotate.conf和/etc/logrotate.d/下的配置文件实现灵活管理,支持按时间或大小轮转,常用参数包括daily、rotate、compress等,并可通过postrotate触发服务重载。

Linux系统中日志文件会随着时间不断增长,如果不进行管理,可能占用大量磁盘空间甚至导致服务异常。通过logrotate工具可以自动实现日志的切割、压缩、备份和清理,是运维中的常用手段。
logrotate 是 Linux 下用于管理日志文件的工具,它能按天、周、大小等条件对日志进行轮转(切割),并支持旧日志的压缩与删除。它通常由 cron 每日自动调用执行,配置灵活,适用于各类服务日志(如 Nginx、Apache、自定义脚本日志等)。
主配置文件为 /etc/logrotate.conf,通常包含全局设置。具体服务的日志策略放在 /etc/logrotate.d/ 目录下,例如:
这些文件会被主配置自动包含,便于模块化管理。
以下是一些关键指令及其作用:
size 100M
create 0644 root root
假设我们有一个应用日志位于 /var/log/myapp.log,希望实现每天切割、保留7份、压缩且自动创建新文件:
/var/log/myapp.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0644 root root
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true
endscript
}
如果使用的是 systemd 系统,也可在 postrotate 中调用:
postrotate
systemctl kill --signal=SIGHUP rsyslog.service
endscript
对于 Nginx 或 Apache 等服务,postrotate 一般发送 HUP 信号使其重新打开日志文件:
postrotate
systemctl kill --signal=SIGHUP nginx.service
endscript
配置完成后建议先手动测试,避免出错:
logrotate -d /etc/logrotate.d/myapp(-d 表示 debug,仅模拟运行)logrotate -f /etc/logrotate.conf 或指定具体配置文件/var/lib/logrotate/status 文件了解上次处理时间确保日志路径存在且服务有写入权限;create 指令可避免轮转后因权限问题无法写入。若未触发轮转,请确认 cron 是否正常运行(一般任务在 /etc/cron.daily/logrotate)。对于高频率写入日志的服务,建议配合 copytruncate(慎用,可能丢数据)或确保服务支持重新打开日志文件。
基本上就这些,合理配置 logrotate 能有效防止日志撑满磁盘,提升系统稳定性。
以上就是Linux日志怎么切割_Linux日志借助logrotate实现日志切割后备份的配置说明的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号