在 Linux 服务器上,日志导致磁盘空间占满是非常常见的问题。可以按下面步骤快速处理和长期优化。
df -h
看哪个分区(通常是 / 或 /var)使用率 100%。
查看目录占用:
du -sh /* 2>/dev/null
du -sh /var/* 2>/dev/null
定位大日志文件:
find /var/log -type f -size +100M
不要直接 rm,可能导致服务仍占用空间。
# 例如
> /var/log/messages
> /var/log/syslog
或:
truncate -s 0 /var/log/xxx.log
rm -f /var/log/*.gz
rm -f /var/log/*-2023*
journalctl --disk-usage
journalctl --vacuum-size=100M
lsof | grep deleted
如果看到大文件:
echo > /proc/PID/fd/X编辑或新建:
/etc/logrotate.d/your_app
示例:
/var/log/app/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
测试:
logrotate -d /etc/logrotate.conf
vim /etc/systemd/journald.conf
SystemMaxUse=200M
重启:
systemctl restart systemd-journald
log-opt max-size如果你能贴出:
df -hdu -sh /var/log我可以帮你给出针对性的清理方案。