温馨提示×

如何清理linux旧日志文件

小樊
55
2026-09-26 16:05:32
栏目: 智能运维

在 Linux 系统中,清理旧日志文件是日常运维中常见的任务。下面按常见场景 + 推荐做法给你一个清晰指南。


一、常见日志位置

  • /var/log/:系统日志主要目录
  • 常见文件:
    • /var/log/messages
    • /var/log/syslog
    • /var/log/auth.log
    • /var/log/dmesg
    • /var/log/nginx/, /var/log/apache2/

二、推荐方式(安全、标准)

1️⃣ 使用 logrotate(最推荐)

大多数 Linux 发行版默认已配置。

查看配置:

cat /etc/logrotate.conf
ls /etc/logrotate.d/

手动执行一次:

logrotate -f /etc/logrotate.conf

✅ 优点:

  • 自动轮转
  • 可压缩
  • 可保留指定天数

2️⃣ 手动删除旧日志(不推荐频繁使用)

只删除时间较久的文件:

find /var/log -type f -name "*.log" -mtime +30 -delete

说明:

  • +30:30 天前的文件
  • -delete:直接删除(谨慎)

3️⃣ 清空日志文件(不删文件)

适合正在被进程占用的日志:

> /var/log/syslog
# 或
truncate -s 0 /var/log/syslog

⚠️ 不要直接 rm 正在写入的日志文件


三、systemd 系统(journalctl)

查看日志大小

journalctl --disk-usage

清理旧日志

# 保留最近 7 天
journalctl --vacuum-time=7d

# 限制最大 500MB
journalctl --vacuum-size=500M

永久限制(编辑配置)

vim /etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=2week

重启:

systemctl restart systemd-journald

四、清理 Docker 日志(常见坑)

docker system prune

或限制容器日志大小(daemon.json):

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

五、注意事项

✅ 不要删除当前正在写入的日志
✅ 生产环境优先用 logrotate
✅ 清理前可先备份重要日志
✅ 用 df -h 检查磁盘空间


如果你能告诉我:

  • 使用的 Linux 发行版(CentOS / Ubuntu / Alpine)
  • 是服务器还是容器
  • 日志爆满的具体目录

我可以给你更精确的清理命令。

0 踩