精华内容
下载资源
问答
  • 删除文件之后空间释放在我这遇到的情况主要有两种: 1.hdfs删除文件之后空间释放 针对此种情况主要是hdfs的回收站功能,为了防止文件删除删除文件会先放到回收站里。 删除的时候也可以直接彻底删除,只...

    删除文件之后空间不释放在我这遇到的情况主要有两种:

    1.hdfs删除文件之后空间不释放

    针对此种情况主要是hdfs的回收站功能,为了防止文件误删除,删除的文件会先放到回收站里。

    删除的时候也可以直接彻底删除,只需 hdfs dfs -rm -r -skipTrash即可

            也可以禁用hdfs的回收站功能,hdfs回收站的功能控制是zaicore-site.xml文件中

            <property>
          <name>fs.trash.interval</name>
               <value>0</value>
      </property>

            0代表不启用回收站功能,如果是其他正整数的话代表该分钟之后会自动删除

    2.linux 删除文件之后不释放

            如果是在linux中删除文件不释放,是因为该文件正在被某进程使用,比方说一个很大的log特别占内存,我们把他删除之后发现linux的磁盘空间并没有释放,改挂载的磁盘下空间没有变小,我们需要通过lsof 的命令查到这个文件正在被那个进程使用并干掉就好了;例如hive.log很大,已经删除,空间没有释放我们需要这么做一下

            lsof hive.log|grep delete  ,查到进程kill掉就好了

    展开全文
  • linux删除文件后空间释放

    千次阅读 2016-06-13 11:04:54
    解决方案:1.rm删除文件后,用lsof | grep XXX 查找使用该文件的进程,kill进程即可立即释放空间。  2.更好的方法是使用echo " ">file命令在线清空该文件。 具体原因分析和具体命令使用请详细阅读如下内容: ...

    现象:删除log后df看空间未释放

    解决方案:1.rm删除文件后,用lsof | grep XXX 查找使用该文件的进程,kill进程即可立即释放空间。

                      2.更好的方法是使用echo " ">file命令在线清空该文件。

    具体原因分析和具体命令使用请详细阅读如下内容:

    复现现象:1.写一个python程序,从public.log不停的复制内容写文件abc.txt

                          

                     2. 运行程序后,看当前路径下文件

                       

                    3,查看空间和df占用,删除正在被写的文件abc.txt,再次查看空间占用

                       

                   可以看到删除了文件,空间并没有释放,反而还在增加。

                   4.查看是什么进程占用了该文件,有两个python进程占用了该文件,后面的(deleted)表示该文件是已删除的

                       

                 5.杀掉进程后,空间立即释放

                  

    更好的解决办法:

            上面复现的过程已经有最基础的解决方案,就是找到占用文件的进程,杀进程,删文件,此解决方案太过粗暴,有以下理由

                  理由一:服务器中某些打log的进程是不能随意删除。

                  理由二:某个文件可能被多个进程占用,或者几十个进程占用,想释放空间就得杀掉所以进程。

            解决方案二:采用将该文件置空的办法,执行echo " " >abc.txt

                 该方案可以在线清空log,但亲测执行时间过长,可能是我每秒写600m的进程太特殊导致。需要权衡,若可以等或者进程不能停,就采用此方法,否则就采用kill进程的方法。

               

                 

    原因探索:        

    Linux下文件的存储机制和存储结构:

                一个文件在文件系统中的存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,数据被删除后,这个指针就从meta-data中清除了,而数据部分存储在磁盘中,数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以出现删除abc.txt文件后,空间还没释放,就是因为python进程还在一直向这个文件写入内容,导致虽然删除了abc.txt文件,但文件对应的指针部分由于进程锁定,并未从meta-data中清除,而由于指针并未被删除,那么系统内核就认为文件并未被删除,因此通过df命令查询空间并未释放也就不足为奇了。          

              在文件系统处理文件需要的信息都存放在索引节点(inode)中,如果在删除文件的时候索引节点的引用计数不为0(表示文件正在被使用),则不会在磁盘中真正的删除文件,从而保证正在使用此文件的进程能够正常的处理文件。

              首先我们一起来看一下内核中关于文件系统的一些关键数据结构的关联,当一个进程打开一个文件后,便会在内核中创建一个file对象,这个对象主要描述了进程如何与文件进行交互。file对象中将指向一个dentry结构(目录项),目录项中描述了目录项名称,父目录项信息,子目录项信息等。而dentry中的d_inode所指向的inode节点中则包含了实际的文件存储在磁盘上的信息。

               当多个进程打开同一个文件时,内核中变会创建相应的file对象,但是他们都公用同一个dentry,只不过每一次打开文件dentry的引用计数d_count加1。并且对于打开的同一个文件而言,inode也是唯一的,inode的引用计数i_count一般为文件硬链接的数目。

    验证上述说明:

    1.后台往abc.txt写的脚本没停,继续写,将文件重命名为abc.log

    2.删除重命名后的文件

    3.删除后用df命令发现所占空间没有减小,查看占用进程发现abc.txt没有进程占用,重命名后的abc.log有进程占用,说明重命名该文件,但inode并没有改变,linux通过inode来查找对应文件,所以继续往重命名后的文件写入。

             Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。

    展开全文
  • 原因:可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题 解决: 1)最简单重启系统或者重启相关服务。 2)干掉进程 /usr/sbin/lsof|grep deleted ora 25575 data 33u REG ...

    问题:某天发现某台机器df -h已用磁盘空间为90G,而du -sh /*显示所有使用空间加起来才30G,囧。

    原因:可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题

    解决:

    1)最简单重启系统或者重启相关服务。

    2)干掉进程

    /usr/sbin/lsof|grep deleted
    ora    25575 data   33u      REG              65,65   4294983680  /oradata/DATAPRE/UNDOTBS009.dbf (deleted)
    

    从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为 33打开的文件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空 间:echo > /proc/25575/fd/33

    3)删除正在写的文件一般用 cat /dev/null > file

    展开全文
  • 删除后发现磁盘空间没释放。 然后,上网查找原因有同学说了,这个文件被进程占用了,查找所有占用的已删除文件的进程 : lsof |grep deleted。发现并被占用。  最后,在/var/log文件夹下有大文件删除就行了...


    用df -h查看系统磁盘空间占用很多。

    首先,从根目录开始,用命令du -sh * 查看占用磁盘多的文件,rm删除文件。删除后发现磁盘空间没释放。

    然后,上网查找原因有同学说了,这个文件被进程占用了,查找所有占用的已删除文件的进程 : lsof |grep deleted。发现并没被占用。

          最后,在/var/log文件夹下有大文件,删除就行了。我用的是echo  " "  > 待删除大文件名   命令清理的文件,空间得以释放。

    展开全文
  • 在Oracle删除空间及数据文件后,df -h 发现空间并没有被释放 ,使用命令: lsof |grep delete|more 我们有大量的文件显示已删除(deleted),但是空间还没有释放 解决方法: 杀掉进程即可 kill -9 18289...
  • Linux删除文件后沒释放空间   今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间沒有变化   os:centos4.7 现象:   发现当前磁盘空间使用情况:...
  • 这篇文章主要给大家介绍了关于Linux文件删除后空间释放问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。 前言 当系统...
  • 原因:可能直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题 解决: 1)最简单重启系统或者重启相关服务。 2)干掉进程 /usr/sbin/lsof|grep deleted ora 25575 data 33u REG ...
  • 打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用。而我删除的是oracle的告警log文件 删除的时候文件应该正在被使用 解决方法 首先获得一个已经被删除可是仍然被应用程序占用的...
  • 目录 1、查看存储空间 ...清理了大部分文件,并清理了废纸篓,重要的文件移入移动硬盘,查看存储空间,显示占用的不多,这里没有问题。 2、终端查看空间 进入终端输入df -h,发现占用了2...
  • 解决办法:使用命令lsof -n / |grep deleted 查看后台运行的正在删除的进程 。如果提示没有 lsof命令 就自己安装下。 然后使用命令lsof -n / |grep deleted|awk '{... 然后查看 df -h 就能看到已经释放空间 ...
  • 前言:我的服务器是阿里云的,基本上安装什么,但40G的硬盘都满了,用du -sh * 找到那个文件占用大了之后,把这个文件夹给了,结果硬盘存储下去。找到一篇跟我的一样,留下方便以后自己记录。 环境 : 阿里云...
  • 在linux系统下使用u盘,如果发现删除u盘的文件后没有释放u盘的空间,可以去回收站把从u盘里删除文件删除
  • 删除日志文件 空间释放

    千次阅读 2016-08-11 09:37:16
    遇到删除日志文件空间释放的问题可以这样解决 ...所以会出现即使删除文件空间仍然没释放的情况。 echo ' ' > a.log sudo -u admin sh -c "echo ' ' > a.log" 加sh -c 是因为sudo 只是e
  • linux删除文件后释放磁盘空间解决方法 本文主要阐述linux删除文件后释放磁盘空间解决方法 。话不多说,直接开始。。。。 原因 使用rm 删除文件原理:rm命令只是把链接解除(unlink),进程仍然可以读取已删除...
  • 处理文件删除后释放空间的问题

    千次阅读 2019-07-23 23:00:31
    问题: linux服务器删除文件后释放空间; 原因:文件删除后仍被进程占用,无法释放磁盘空间; 解决方法:执行命令清空文件或者重启进程可释放空间 for i in find /proc/*/fd -ls |grep deleted|grep opt|awk '{...
  • 在终端1使用命令 rm temp.txt删除文件temp.txt,再次使用du -h查看/data/路径下占用大小,发现并未全部释放 原因: 当文件被其它进程使用且为释放时,当前删除并不会立即生效释放空间,知道访问该文件的其它进程...
  • Linux文件删除后磁盘空间没有释放

    千次阅读 2018-01-28 22:58:39
    文件删了磁盘空间没释放 原因 可能是因为删除了某个正在被写入的文件 解决 1)删除后,重启写入文件的应用进程; 2)干掉进程:用命令 sudo /usr/sbin/lsof|grep deleted 查看空间没释放文件,找到进程名称、...
  • centos下删除文件后空间并未释放

    千次阅读 2017-10-28 19:23:58
    删除文件之后空间没有释放,如下图: /文件系统使用15G但是已经100% 极有可能是文件被占用所以没有释放空间。lsof -n|grep deleted 查找占用文件的应用,如下图:重启一下应用可能就好了。可以看到是zabbix_agent...
  • 解决CentOS删除文件后空间没有释放 一、问题描述: zabbix监控报警,磁盘空间不足登陆服务器上查看发现使用率不足20%,但清理完垃圾日志以后磁盘空间还是没有释放 以下是处理未释放空间的步骤 二、操作步骤 1、...
  • 今天有一位同学碰到了这样一个问题:du命令查看空间只占用19Gdf命令查看却占用43G 网上说明:解决删除文件后磁盘空间释放问题 du命令会对统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件...
  • linux删除文件后没有释放空间

    千次阅读 2016-10-12 13:42:01
    linux删除文件后没有释放空间   今天发现一台服务器的home空间满了,于是要清空无用的文件,当我删除文件后,发现可用空间没有变化   os:centos4.7 现象:   发现当前磁盘空间使用情况:   [root@...
  • 解决linux删除文件后,磁盘空间释放 服务器applogs下的磁盘空间使用率已达100%,使用rm -rf 日志文件名删除文件后,再使用df -h查看,发现磁盘空间释放,通过查阅资料,总结出以下两种解决方式: 1.使用rm -rf ...
  • 这几天做LINUX实验的时候,发觉自己删除了一个大文件后用 df -h 指令检测磁盘空间,发现空间并没有减少,后来仔细查询,总结出以下三种不释放内存的可能: 一、该文件已经建立硬链接 这个原因很简单,hardlink是指...
  • 环境 : 阿里云服务器 ...2.发现一个6G的vote.log文件,使用 rm -rf命令删除 3.在根目录"/"下, 执行 "du -sh"命令,结果为 5.2G, 执行"df -hl"命令,结果仍是使用100%。 请问在此情况下应该如何释放磁盘空间
  • linux删除文件之后空间没有释放

    千次阅读 2016-09-02 10:55:43
    linux里的文件删除后空间没有被释放是因为在Linux系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该...
  • 有时候Mac下删除文件磁盘空间无法释放
  • 工作中经常遇到Linux系统磁盘空间不足,但是删除后较大的日志文件后,发现磁盘空间仍没有被释放,有点摸不着头脑,今天博主带大家解决这个问题。 思路 1、工作发现磁盘空间不足; 2、找到占用磁盘空间较大的文件进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 197,490
精华内容 78,996
关键字:

删除文件后空间没释放