已删除的文件的进程占用空间导致根分区爆满

   已删除的文件的进程占用空间导致根分区爆满

    方式1:不建议采用,风险大

du -sh ./   # 查看后发现根目录空间并未沾满
lsof |grep delete  #查看已删除的文件,但还占用空间
# java      28893 jenkins   19r      REG                8,3     1484022    5376261 /tmp/jna4374897431416021330jar (deleted)
kill -9 28893 # 杀掉这个进程,但不建议使用

   方式2:建议使用

         在线清理,对待这种进程不停对文件写日志的操作,要释放文件占用的磁盘空间,最好的方法是在线清空这个文件         

# 通过这种方法,磁盘空间不但可以马上释放,也可保障进程继续向文件写入日志。
# 在线清空文件(比如/var/log/jenkins/jenkins.log)的方式:
# echo " " > /var/log/jenkins/jenkins.log
# cat /dev/null > /var/log/jenkins/jenkins.log
 >/var/log/jenkins/jenkins.log

# 清空jenkins的节点agent启动生成的nohup.out日志文件
>/opt/jenkins-slave-files/nohup.out
>/opt/jenkins-slave-files/jenkins.out

 方式3:建议使用

#在删除日志文件时如果没有先清空文件,直接delete掉,会导致无法释放磁盘占用。
#使用如下命令能发现这样的文件:
  find /proc/*/fd -ls 2>/dev/null|awk '/(delete)/{print $(NF-1)}'

#解决办法: truncate 他的link文件
  find /proc/*/fd -ls 2>/dev/null|awk '/(delete)/{print $(NF-3)}'|sort|uniq|xargs truncate -s 0  

  

 

 

posted on 2022-04-29 20:59  蜗牛也是妞  阅读(315)  评论(0)    收藏  举报