在工作中, 当我们发现磁盘马上就要满了的时候, 我们想要删除一些大文件, 但是这些大文件正在被使用的话, 如果直接删除这个文件的时候,可能这一块空间是没有办法马上释放的。


下面是模拟磁盘不能被合理的释放的情况。

1> 实验之前查看/testdir挂载分区的使用情况。

wKioL1eZgfjia_0CAAP9h-gNMy0823.png-wh_50

2>. 使用dd命令向/testdir文件夹创建一个大文件

wKioL1eZgiORqhB0AANnR_1cDtQ634.png-wh_50

 

3>. 查看testdir的挂载分区的使用情况

wKioL1eZgk2ghSt_AAP02pbUXS4486.png-wh_50


4>. 打开/testdir/testfile文件, 模拟正在使用

 wKioL1eZgnTDIqFGAADhz6Pe-o8714.png-wh_50


5> 直接去删除/testdir/testfile文件, 删除查看/testdir的挂载信息

 wKiom1eZgpLSPePpAATbJOtncT4023.png-wh_50


从实验结果可以看出, 磁盘空间并没有被释放, 但是这在生产坏境下, 如果遇到这种情况, 机器又不允许重启的话, 只能眼睁睁看着磁盘被占满, 一旦磁盘被占满的话, 系统就会崩溃, 并且服务也不能运行, 这显然在生产坏境下, 是不允许的。


下面是正确释放磁盘空间的方法, 其实方法很简单, 只需要rm -rf 文件名 的前面, 

使用命令 > 文件名, 将里面的文件清空就OK了。

1>. 查看/testdir挂载点的使用情况.

wKiom1eZggmDvO05AAP9h-gNMy0403.png-wh_50

2>. 使用dd命令向/testdir文件夹创建一个大文件

 

wKiom1eZgjTxUZLuAANnR_1cDtQ109.png-wh_50

3>. 查看testdir的挂载分区的使用情况

 wKioL1eZgl6SGl_dAAP02pbUXS4627.png-wh_50


4>. 打开/testdir/testfile文件, 模拟正在使用

 wKioL1eZgnTDIqFGAADhz6Pe-o8714.png-wh_50


5. 删除文件之前将文件清空, 然后删除。

wKioL1eZgqbzdkXQAAU7-gNZEeY116.png-wh_50

 

结果磁盘空间马上就被释放了。


// 上面的这种磁盘没有被释放是基于删除文件正在被使用的情况下, 而现实生产坏境下, 磁盘下的文件很有可能正在会被使用。所以在释放空间的时候要记得先清空文件。