Linux下执行rm删除正在被使用的文件实验

Linux idb 774℃ 0评论

Linux下执行rm删除正在被使用的文件实验

很多时候,因为大文件占用Linux系统的空间,需要进行清理,但是因为没有留意文件是否被进程占用,就直接进行了rm删除操作。但是rm执行之后,空间却没有释放出来。我们需要找到原因。以下是本人的处理方法,仅仅是供参考。
以下都是同一个Linux系统上面的操作,只是不同会话连接。

Linux连接1:

查看当前连接的终端号

创建一个用于被删除的文件deltest.txt,一个实验都建议在/tmp目录下面,这样可以避免误删。

利用tail命令和参数【-f】动态查看文件,从而模拟占用文件。

Linux连接2:
打开新的Linux连接工具,确认连接的终端号,

执行删除【/dev/pts/1】创建的文件deltest.txt

利用lsof命令,grep 关键词delete,查看到是否被进程占用。从下面的结果可以看出,【/dev/pts/1】这个终端执行的tail -f命令占用着deltest.txt,

要让文件彻底删除,是否空间,需要在Linux连接1( tty /dev/pts/1)上面停止tail 命令,也就是释放对/tmp/deltest.txt的占用,然后再次lsof查看,已经没有/tmp/deltest.txt (deleted)信息

通过上面的几个步骤,基本可以确定文件被删除后,空间没有释放出来的原因。但是,大多数情况下,占用存储较多时日志文件,且不能停止占用该文件的应用程序进程,一般确认日志文件可以清理的话,使用以下命令来释放空间。

后者

或者直接

转载请注明:猫头鹰工作室 » Linux下执行rm删除正在被使用的文件实验

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 要让文件彻底删除,是否空间 释放空间
    onion2018-07-25 18:23 回复
    • 被进程占用的删除文件,重启进程就可以释放了。空间就会空闲出来。
      idb2018-08-06 14:22 回复