linux 空间莫名消失

需求:

  • 使用df 查看空间占用100% 挂了,但是找不到文件在哪

进程:

  • 使用du --max-depth=1 -h 查看具体是哪个目录有问题
  • 查了半天删除了一些文件之后虽然能用了,但是 du 出来的大小和df 出来的大小不一致
  • 应该是进程锁死了, 如果在rm 的时候刚好有其他的地方会插入数据,那就会导致,这个日志文件虽然已经被删除,但由于进程还在一直向此文件写入数据,因此空间并未释放
  • 使用 lsof | grep deleted 查看进程 返回的第一列是导致未释放的服务,第二列就是进程pid
  • 那就有两种方式可以解决问题
    – kill掉对应的 pid kill -9 pid
    – 重启对应的服务 service nginx restart

拓展

  • 删除文件有可能会出现这种问题,那就可以使用cat /dev/null > logfile腾出空间
  • > 表示清空并输入,连起来就是将null 输入到 logfile 中, 当然用echo 也行 echo > logfile

你可能感兴趣的:(linux,服务器,运维)