在 Linux 系统中,日志文件过大是常见问题,通常可以从清理、轮转、限制大小、定位源头几个方面处理。下面按实用顺序说明:
du -sh /var/log/*
常见大日志:
/var/log/messages/var/log/syslog/var/log/journal/(systemd 日志)> /var/log/syslog
# 或
truncate -s 0 /var/log/syslog
⚠️ 不要 rm 正在写入的日志文件,否则进程仍占用磁盘。
rm -f /var/log/syslog.*
Linux 自带 logrotate 自动轮转日志。
cat /etc/logrotate.conf
ls /etc/logrotate.d/
logrotate -f /etc/logrotate.conf
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
}
journalctl --disk-usage
编辑:
/etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=2week
重启:
systemctl restart systemd-journald
清理:
journalctl --vacuum-size=500M
lsof | grep deleted
或:
find /proc/*/fd -type l 2>/dev/null | xargs ls -l 2>/dev/null | grep log
access_log off; 或按大小切割{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
echo "" > /var/log/syslog
journalctl --vacuum-time=1d
如果你能告诉我:
我可以给你更精准的操作命令。