在 Linux 中清理日志文件的方法取决于日志类型和发行版。下面按常见场景给你一个实用指南(含安全做法)。
大多数日志在:
/var/log/
例如:
/var/log/messages/var/log/syslog/var/log/dmesg/var/log/secure/var/log/nginx//var/log/journal/(systemd 日志)最推荐,不会破坏服务或 inode。
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/messages
或批量:
sudo truncate -s 0 /var/log/*.log
适用于 systemd 系统(CentOS 7+/Ubuntu 16+)
journalctl --disk-usage
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d
大多数 Linux 已自带。
查看配置:
ls /etc/logrotate.d/
手动执行:
sudo logrotate -f /etc/logrotate.conf
sudo find /var/log -type f -name "*.log" -mtime +30 -delete
⚠️ 不建议直接 rm 正在写入的日志文件
docker system prune -f
truncate -s 0 /var/lib/docker/containers/*/*-json.log
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 |
如果你愿意,可以告诉我:
我可以给你精确命令,避免误删。