【知识点】NO.1—-关于删除文件后未及时释放磁盘空间问题

删除了某些占用大存储的文件,发现占用的磁盘空间并没有的到释放。怎么解决呢?
在工作中经常遇到服务器某个存放日志或者某些数据的磁盘(或者目录),因为检查不及时磁盘存储满了的状况。释放空间真的只是删除文件这么简单吗?nonono…

我们先来模拟一下演示环境

首先我们看一下磁盘的存储状况

[root@Centos7 ~]#df     -h       #df   显示每个文件所在的文件系统的信息 。-h以人类易读的类型显示。

文件系统               容量     已用   可用   已用%  挂载点

1

[root@Centos7 ~]#dd if=/dev/zero of=/boot/456 bs=1M count=900

##dd if=/dev/zero of=/boot/456 bs=1M count=900  #通俗点来讲及时批量创建文件内容到/boot/456中。
input  file       output  file    block size       count
输入文件          输出文件 (批次大小) (批次)

2

[root@Centos7 ~]#ll  -h  /boot/456   显示/boot/456的文件的详细信息

4

#通过df -h命令我们看到 /boot目录的使用率已经100%了。

3

下面我们通过常用的命令rm来进行删除

5

删除操作执行成功了,怎么/boot目录的使用率还是100%?难道文件还存在??

6

那我们通过#ll -h /boot来查看一下/boot下的文件列表。是不是很奇怪?文件没有了为什么占用的空间却没有正常的释放!难道系统出问题了?

那怎么办呢?

不要担心,接下来我们来排查一下问题。

因为命令执行没有失败,文件也确实删除掉了。

那么我们来通过lsof命令:来查询一下文件即被打开编辑中同时又被执行了删除操作的文件。

[root@Centos7 ~]#lsof |grep deleted

7

通过查询我们看到最下边的那一条vi编辑着的文件居然就是我们刚刚删除的/boot/456文件,占用的空间居然还是800+M大小。

这就是明明删除了文件,可是存储空间却没有及时释放的原因了。因为文件还在使用中,系统默认是在程序关掉后才会释放空间。我们直接kill杀掉这个进程既可以了。

其实工作中经常遇到这种情况,服务器是很多人都可以访问的,部分文件(例如日志文件等)的访问权限比较低大多数都是开放读写权限的。这就有可能造成一个人在删除日志文件的同时,还有别的同事正打开查看这个日志文件。从而造成空间未及时释放。

[root@Centos7 ~]#kill -9 PID    【PID 即程序运行的ID编号,实验中的编号是3699】

[root@Centos7 ~]#kill -9 3699

8

杀掉该进程后df -h 命令发现空间立刻释放出来了,是不是很神奇呢!

接下来,我们再来介绍另外一种删除释放存储空间的办法。这种方法就不会出现rm删除后可能无法及时释放空间的问题。

首先:我们先来恢复一下上面的实验环境,还是/boot 目录吧

9

环境搭建好了。

接下来开始试验

[root@Centos7 ~]#> /boot/456   #这里我们使用【>】来先清空文件内容。

清空后df -h发现存储空间即刻得到释放了。

10

当然如果文件真的不需要了,在执行rm命令删除即可。

 

后边介绍的这种方法,是不是又简单又实用呢?

不过这两种方法使用的时候要注意文件不要跟错咯,否则删除的文件都是很难恢复的哦!

小伙伴们还有没有别的更好的方法呢?

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88533

(1)
lvshijunlvshijun
上一篇 2017-11-18 10:53
下一篇 2017-11-18 11:54

相关推荐

  • yum用法第二篇-自定义创建yum仓库

    一、前言      上次写了yum命令的介绍及常见使用说明,这次打算继续整理下如何自定义创建yum仓库,这在企业中也是非常常见的设置方式,有些公司为了服务器安全是不允许连接外网的,自定义创建yum仓库正好可以实现局域网单独安装管理程序包这种需求。 二、用法说明      1.使用…

    Linux干货 2015-09-22
  • tomcat基础-如何给Tomcat前端加反向代理服务器

    Tomcat可以做为反向代理服务器的组件有很多,例如使用nginx,如果使用nginx,Tomcat就只能使用http连接器,另外一种是apache。如果是使用httpd,Tomcat两种连接器都能发挥作用,例如可以使用http连接器,也可以使用ajp连接器,

    Linux干货 2018-03-19
  • linux之netfilter与 iptables学习

    Linux之netfilter与iptables学习 一、为什么我们的主机需要防火墙 二、Linux下防火墙如何实现 三、四表五链学习 四、主机防火墙 五、网络防火墙 六、iptables命令学习 七、主机防火墙规则备份与恢复 ====================================== 一、为什么我们的主机需要防火墙?  &nbs…

    Linux干货 2016-06-23
  • 马哥教育网络班21期-第一周课程练习

    第一周课程练习 1、描述计算机的组成及其功能?         1.1 现代主流的计算机(冯·诺依曼体系)主要由五部分组成,分别是控制器、运算器、存储器、输入和输出设备。控制器和运算器对应我们现实计算机看到的CPU,存储器对应内存和硬盘等存储设备,输入设备对应鼠标键盘等其它外设,输出设备对应显示器、音响、打印机等其它外…

    Linux干货 2016-06-26
  • nmcli命令用法简介

    nmcli:地址配置工具 用法:nmcli [OPTIONS] OBJECT { COMMAND | help } 一般使用的情况有: 设备:正在使用的网络端口 链接:一组配置设置,对于一个单一的设备可以有多个连接,可以在链接之间切换 常用命令:     nmcli connection show &nbsp…

    Linux干货 2016-09-07
  • 为什么系统可执行文件多用相对路径创建链接

    为什么系统可执行文件多用相对路径创建链接 使用链接有什么好处 作为一个linux初学者,我们首先要知道,在linux中使用链接的好处是什么。总结下来一共有几个: 使用链接可以使我们在访问文件时省去一大笔敲文件路径的时间。对于我们运维工程师来说,我们经常要查看某个文件或者访问某个目录,再进行该项工作时,往往需要敲很多路径才能找到我们想访问的文件,创建链接可以让…

    Linux干货 2017-07-23