【知识点】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

相关推荐

  • Linux常用命令及bash特性(1)

    马哥教育网络班22期第二周课程练习 Linux简单使用(1) Linux常用命令介绍 linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。 linux命令在系统中有两种类型:内置Shell命令和Linux命令。可以使用help、…

    Linux干货 2016-08-29
  • N25-第三周作业

    一、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.          [root@test ~]# who | cut -d' ' -f1 | sort -u 二、取出最后登录到当前系统的用户的相关信息。    &nbs…

    Linux干货 2016-12-26
  • N24 W3 博客作业

    第三周 "   1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut –d’ ‘ –f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost ~]# id `who | tail -n 1 | cut …

    Linux干货 2016-11-14
  • 系统启动和内核管理-1

    1、Linux 组成 kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能等等 rootfs: 程序和glibc 内核设计流派: 单内核(monolithic kernel)-Linux-把所有功能集成于同一个程序 微内核(micro kernel)-Windows, Solaris-每种功能使用一个单独子系统实现 1)、Linux内核…

    Linux干货 2016-09-13
  • N25第二周作业

    1、Linux上的文件管理类命令都有哪些其常用的使用方法及其相关示例演示。 cp(copy) 复制,mv(move)移动或者更名,mkdir(创建目录,-p可以同时创建父目录),rm(删除目录,-r 可以递归操作,rmdir(删除空目录)删除文件或者目录,建议建立一个临时回收站,否则误删或者短时间内还需要的文件),touch,file,stat, …

    Linux干货 2016-12-25
  • Linux中的 德·摩根定律

    Linux中的 德·摩根定律 §·德·摩根定律介绍 ※概念 在命题逻辑和逻辑代数中,德·摩根定律(或称德·摩根定理)是关于命题逻辑规律的一对法则。 奥古斯塔斯·德·摩根首先发现了在命题逻辑中存在着下面这些关系: 非(P 且 Q) = (非 P) 或 (非 Q) 非(P 或 Q) = (非 P) 且 (非 Q) 德·摩根定律在数理…

    Linux干货 2016-08-15