解决centos 删除文件后但空间没有释放
一、问题描述:磁盘空间不足,清理完垃圾日志以后磁盘空间还是没有释放
查看磁盘空间
[root@xwj-qt-65-44 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 780K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 79G 30G 46G 40% /
/dev/vdb1 100G 81G 20G 81% /data
tmpfs 379M 0 379M 0% /run/user/0
2.安装lsof命令
# yum -y install lsof
3.查看删除文件被占用的具体情况
[root@xwj-qt-65-44 ~]# lsof -n /data/ |grep deleted
nginx 955 root 5w REG 253,17 12752590639 2079981 /data/logs/zhuoyou_access.log (deleted)
nginx 5848 www 5w REG 253,17 12752590766 2079981 /data/logs/zhuoyou_access.log (deleted)
nginx 5849 www 5w REG 253,17 12752590766 2079981 /data/logs/zhuoyou_access.log (deleted)
nginx 5850 www 5w REG 253,17 12752590766 2079981 /data/logs/zhuoyou_access.log (deleted)
nginx 5851 www 5w REG 253,17 12752590766 2079981 /data/logs/zhuoyou_access.log (deleted)
[root@xwj-qt-65-44 ~]# lsof -n /data/ |grep deleted |awk '{print $2}'
955
5848
5849
5850
5851
5.kill掉相应的进程
[root@xwj-qt-65-44 ~]# lsof -n /data/ |grep deleted |awk '{print $2}' |xargs kill -9
[root@xwj-qt-65-44 ~]# lsof -n /data/ |grep deleted
[root@xwj-qt-65-44 ~]#
再次查看磁盘空间已释放
[root@xwj-qt-65-44 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 780K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 79G 30G 46G 40% /
/dev/vdb1 100G 69G 32G 69% /data
tmpfs 379M 0 379M 0% /run/user/0
kill掉相应的进程,或者停掉使用这个文件的应用,让os自动回收磁盘空间
我这个文件仅是一个备份文件,且已经存在一份压缩好的备份文件,所以直接kill,风险不是很大。
使用kill时,应确定不会对运行中的进程造成影响。这种方式对应用程序并不友好,当一个正在使用的文件被截断可能会引发不可预知的问题,请慎用。