You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux磁盘已满,如何安全删除Nginx的27G domain.acc.log日志?

安全清理Nginx大日志文件(domain.acc.log)的实操步骤

嘿,针对你遇到的这个27G的Nginx访问日志占满磁盘的问题,咱们得用安全的方式处理——直接删除正在被Nginx写入的日志文件会踩坑:比如Nginx还持有该文件的句柄,磁盘空间不会立刻释放,甚至可能导致后续日志丢失。下面是两种靠谱的方案,你可以根据需求选:

方案一:切换日志后删除(适合需要备份旧日志的场景)

这个方法会让Nginx把后续日志写到新文件里,旧日志就可以安全处理了:

  • 让Nginx重新打开日志文件,切换写入目标:
    kill -USR1 $(cat /var/run/nginx.pid)
    
    解释一下:USR1是Nginx专门用来重新加载日志的信号,/var/run/nginx.pid是Nginx主进程的PID文件,如果你的系统里这个路径不对,可以用ps aux | grep nginx找到主进程的PID,替换成kill -USR1 <PID>。
  • 确认Nginx已经切换到新日志后,你可以选择先压缩备份旧日志(节省空间):
    gzip domain.acc.log
    
  • 最后删除压缩后的备份文件(如果不需要保留的话):
    rm domain.acc.log.gz
    
    要是不需要备份,直接删原文件就行:rm domain.acc.log

方案二:直接清空日志(适合无需备份,快速释放空间的场景)

这个方法不用删除文件,直接清空内容,Nginx的写入不会中断,操作更简单:

  • 用truncate命令清空文件:
    truncate -s 0 domain.acc.log
    
  • 或者用重定向的方式快速清空:
    > domain.acc.log
    

这两种命令都会立刻把文件大小置为0,磁盘空间瞬间释放,而且Nginx会继续往这个文件里写日志,完全不影响服务。

重要提醒

绝对不要直接用rm domain.acc.log删除正在被Nginx写入的文件!虽然文件在目录里消失了,但Nginx的进程还握着文件句柄,磁盘空间不会被释放,直到Nginx重启或者重新打开日志,到时候你会发现磁盘还是满的,排查起来更麻烦。

内容的提问来源于stack exchange,提问作者Razyit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:31:26