解决centos 删除文件后但空间没有释放

发布于:2024-10-09 ⋅ 阅读:(3) ⋅ 点赞:(0)
一、问题描述:磁盘空间不足,清理完垃圾日志以后磁盘空间还是没有释放
查看磁盘空间
[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时,应确定不会对运行中的进程造成影响。这种方式对应用程序并不友好,当一个正在使用的文件被截断可能会引发不可预知的问题,请慎用。