环境 : 阿里云服务器 CentOS
硬盘大小 : 20G
问题 : 磁盘空间不足
处理过程 :
1. 执行"df -hl"命令,磁盘空间使用已满,结果如下
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 19G 31M 100% /
tmpfs 938M 0 938M 0% /dev/shm
2.发现一个14G的nohup.out文件,使用 rm -rf命令删除
3.在根目录"/"下,
执行 "du -sh"命令,结果为 5.2G,
执行"df -hl"命令,结果仍是使用100%。
请问在此情况下应该如何释放磁盘空间??
问题已经通过@leezj 的答案解决,感谢@leezj,也感谢所有回答者的关注和支持。
解决过程:
执行方法: lsof | grep nohup.out
sh 6148 leo 1w REG 202,1 14343692933 404832 /home/leo/app/nohup.out (deleted)
sh 6148 leo 2w REG 202,1 14343692933 404832 /home/leo/app/nohup.out (deleted)
java 6149 leo 1w REG 202,1 14343692933 404832 /home/leo/app/nohup.out (deleted)
java 6149 leo 2w REG 202,1 14343692933 404832 /home/leo/app/nohup.out (deleted)
杀死进程6148,6149
sudo kill -9 6148
sudo kill -9 6149
然后执行"df -hl"查看磁盘空间,磁盘空间已释放,结果如下
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 5.2G 14G 28% /
tmpfs 938M 0 938M 0% /dev/shm
通常来说这种问题是因为你要删除的文件,还有进程在使用,文件句柄没有释放,所以即使你rm -rf磁盘空间也不会被释放
解决办法:
1、如果你知道文件名的话:lsof | grep nohup.out,找到是什么进程在使用这个文件,找到后kill掉就能释放空间了
2、如果你不知道文件名的话:lsof | grep deleted,这样会查找所有被删除的但是文件句柄没有释放的文件,找到后kill掉即可