温馨提示×

linux怎样清理日志文件

小樊
37
2026-07-18 08:58:38
栏目: 智能运维

在 Linux 中清理日志文件的方法取决于日志类型发行版。下面按常见场景给你一个实用指南(含安全做法)。


一、常见日志位置

大多数日志在:

/var/log/

例如:

  • /var/log/messages
  • /var/log/syslog
  • /var/log/dmesg
  • /var/log/secure
  • /var/log/nginx/
  • /var/log/journal/(systemd 日志)

二、安全清理日志(推荐)

✅ 方法 1:清空日志文件(不删文件)

最推荐,不会破坏服务或 inode。

sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/messages

或批量:

sudo truncate -s 0 /var/log/*.log

✅ 方法 2:使用 systemd 清理日志(journalctl)

适用于 systemd 系统(CentOS 7+/Ubuntu 16+)

查看占用

journalctl --disk-usage

按大小清理

sudo journalctl --vacuum-size=100M

按时间清理

sudo journalctl --vacuum-time=7d

三、使用日志管理工具(推荐)

✅ logrotate(自动清理)

大多数 Linux 已自带。

查看配置:

ls /etc/logrotate.d/

手动执行:

sudo logrotate -f /etc/logrotate.conf

四、删除旧日志(谨慎)

删除 30 天前的日志

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

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


五、Docker / 容器日志清理

Docker 日志

docker system prune -f

清理某个容器日志

truncate -s 0 /var/lib/docker/containers/*/*-json.log

六、Nginx / Apache 日志

sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log

七、清理前建议

✅ 先查看磁盘占用:

df -h
du -sh /var/log/*

✅ 备份重要日志:

cp /var/log/syslog /backup/

八、总结(最常用)

场景 命令
清空日志 truncate -s 0 文件
systemd 日志 journalctl --vacuum-size=100M
自动管理 logrotate
删除旧日志 find + mtime

如果你愿意,可以告诉我:

  • 发行版(CentOS / Ubuntu / Debian)
  • 日志类型(系统 / Docker / Nginx / Java)
  • 磁盘是否快满

我可以给你精确命令,避免误删。

0