一、现象:
Linux主机:用df -hT
查看磁盘占用已经满了,但是用du -sh *
又找不到是哪些文件目录占满了磁盘。
二、解决,lsof
lsof |grep delete
用lsof检查后才发现原因是,有文件被删除,而进程还活着,因而造成还占用空间的现象。
根据lsof列出的进程号,kill这些进程或重启进程后,空间就释放出来了。重要服务进程pid,注意确认,别发重要服务kill了。
三、总结
- 日志文件等,不要多个进程公用同一个文件,这样有的进程下线清理文件,由于其他进程占用,空间不会释放。
- 清理一些文件,不要直接
rm -rf
,如果进程读取的文件,文件删了由于进程占用,空间不会释放。可以echo > filename
清空文件