Linux 服务器日志暴增,如何配置日志轮转?

某天你发现网站变慢或SSH连不上,查了半天才发现是 /var/log 目录把磁盘塞满了。
这就是典型的 服务器日志暴增 问题。
Linux 系统自带的 logrotate 工具可以自动按大小、时间拆分并清理旧日志,下面带你完整配置一遍。

动手前先确认两件事

绝大多数 Linux 发行版已默认安装 logrotate,但最好先确认一下:

rpm -qa | grep logrotate   # CentOS/RHEL
dpkg -l | grep logrotate   # Ubuntu/Debian

如果没输出,执行安装:

# CentOS
sudo yum install -y logrotate
# Ubuntu
sudo apt install -y logrotate

配置文件一般放在 /etc/logrotate.conf(全局设置),自定义配置推荐放在 /etc/logrotate.d/ 目录下(每个应用一个文件)。

编写你的第一个轮转配置

假设你的应用日志位于 /var/log/myapp/access.log,每天产生几十 MB,且不需要保存太久。
创建一个配置文件:

sudo vim /etc/logrotate.d/myapp

写入以下内容:

/var/log/myapp/access.log {
    daily              # 每天轮转一次
    rotate 7           # 保留最近7个归档
    compress           # 压缩旧日志(默认gzip)
    delaycompress      # 推迟一天压缩,方便查看
    missingok          # 日志文件不存在时不报错
    notifempty         # 日志为空时不轮转
    create 0640 www-data www-data  # 轮转后新建日志文件的权限和属主
}

保存后执行一次测试:

sudo logrotate -d /etc/logrotate.d/myapp

-d 是调试模式,只模拟不实际执行,没有报错代表配置生效。

避坑:新手最容易翻车的三个地方

  • 权限问题create 指令的属主或组必须与日志实际写入进程一致,否则轮转后新日志无法写入。可先用 ls -l /var/log/myapp/access.log 查看原属主。
  • 复制截断 vs 创建新文件:应用程序运行时通常持有旧文件句柄。使用 create 后旧日志被移动,新文件被创建;部分服务需要额外发送信号(如 postrotate 指令)才能重新打开日志。例如 Nginx 需要在配置里加:
postrotate
    /usr/sbin/nginx -s reopen
endscript
  • 时间单位误解daily 按自然天轮转,size 100M 按文件大小触发,两者可以同时使用(一旦某个条件满足就轮转)。如果日志暴增过快,建议同时设置 size 限制。

验证轮转是否按预期工作

等待一天太慢,我们可以手动强制触发一次:

sudo logrotate -f /etc/logrotate.d/myapp

然后检查 /var/log/myapp/ 目录:

  • access.log 应被重命名为 access.log.1access.log.1.gz(带压缩后缀)。
  • access.log 文件已创建,且属主权限与配置一致。

查看 logrotate 执行记录:

cat /var/lib/logrotate/logrotate.status

里面会列出每个日志文件的上次轮转时间,确认 myapp/access.log 已被记录。

最后建议再检查磁盘使用率:

df -h /var/log

如果之前快满了,现在应该已经空出不少空间。

如果你正在处理 Linux 服务器日志暴增,建议先按本文步骤完整执行,根据自己应用的类型调整 postrotate 信号;
遇到异常时优先回看避坑部分,并检查 /var/log/messagesjournalctl -u logrotate 获取更详细的错误输出。

分享到:
上一篇
用大模型做运维故障排查,如何避免被误导?
下一篇
宝塔面板数据库被攻击,教你紧急备份恢复
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意