在 Debian 上清理 Nginx 日志通常有几种方式,取决于你是想立即释放空间、自动轮转,还是彻底禁用日志。下面按常见场景说明。
Debian 安装 Nginx 后,通常会自带:
/etc/logrotate.d/nginx
cat /etc/logrotate.d/nginx
典型内容类似:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
logrotate -f /etc/logrotate.d/nginx
✅ 推荐做法:保持默认,不要手动删日志
如果你只是想马上腾空间:
sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log
或一次性清空所有:
sudo truncate -s 0 /var/log/nginx/*.log
⚠️ 不要用 rm 删日志文件,否则 Nginx 还会写已删除的 inode,空间不会释放
logrotate 后的日志一般长这样:
access.log.1
access.log.2.gz
手动删除:
sudo rm -f /var/log/nginx/*.log.*
access_log off;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
access_log /var/log/nginx/access.log main buffer=32k flush=5s;
df -h
du -sh /var/log/nginx
| 目的 | 做法 |
|---|---|
| 安全清理 | logrotate -f |
| 立即释放空间 | truncate -s 0 |
| 长期管理 | 调整 logrotate |
| 减少日志 | 关闭/限制 access_log |
如果你愿意,可以贴一下:
我可以帮你定制一套最合适的日志管理方案。