如何在 Linux 下快速找到被删除的文件

日常运维过程中,我们经常需要处理磁盘空间问题,当接到告警后,第一时间会去找那些大文件,一般比如 Centos,可能大文件就是 /var/log/messages。

如何在 Linux 下快速找到被删除的文件

但有的时候,会出现怎么也查不到大文件的情况,通过 du 查找的时候,统计出来的大小,跟 df 显示的占用空间对应不上。

如果通过 df -i 查看inode没有满的话,那么极有可能,是有大文件被直接rm了,但是仍然有进程打开了这个文件。

这种情况,由于进程没有退出,因此文件占用的空间并不会释放;直到进程退出,磁盘空间才会真正释放。

如何找到是哪个进程打开了该文件

Linux上,由于进程仍然存活,因此可以通过查看所有进程打开的 fd,如果该文件已经被删除,则查看时,会显示(deleted)。

示例如下:

$ sudo find /proc/*/fd -ls | grep  '(deleted)' 

   388609      0 lrwx——   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/4 -> /tmp/ibpX85Vd\ (deleted) 

   388610      0 lrwx——   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/5 -> /tmp/ibCwAgAj\ (deleted) 

   388611      0 lrwx——   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/6 -> /tmp/ibRZ5rep\ (deleted) 

   388612      0 lrwx——   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/7 -> /tmp/ibBuNEzA\ (deleted) 

   388616      0 lrwx——   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/11 -> /tmp/ibG68kpG\ (deleted) 

如何避免这种情况

不要直接删除该文件,而是通过将文件 truncate 的方式,释放磁盘空间。

一种方式是:

cat /dev/null > ${filename} 

或者(新get!)

: > ${filename} 

如此,可以快速释放空间。

原文地址:https://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247494283&idx=1&sn=fad8fdf2e65ebfe1b4a67de904f2bedc&chksm=eac6cba2ddb142b44d9187acb37b10985c71862303c1082bc8e6f5df69881065b110dc978b29&mpshare=1&

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/1544.html

(0)
admin的头像admin
上一篇 2024年9月5日
下一篇 2024年10月16日

相关推荐

  • Linux的/etc/fstab文件详解

    一、/etc/fstab文件的作用 /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab来查看,如果要修改的话,则…

    2022年8月23日
    000
  • EXT2、EXT3、EXT4、XFS、GPT详解

    EXT2与EXT3区别 Linux之前缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定。但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显…

    2017年12月14日
    000
  • Linux中常见环境变量的特点与设置指南

    前言 环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息。理解环境变量对于系统管理、软件开发都很重要。 一、环境变量的概念 环境变量是操作系统用来存储和传递与系…

    2025年7月30日
    000
  • Linux用户空间与内核地址空间详解

    Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户…

    2024年6月15日
    000
  • Starwind 配置 ISCSI 共享存储

    前言 之前讲过一篇文章 Linux7 安装 Oracle 11GR2 RAC 教大家如何安装 Oracle RAC。有朋友希望将共享存储配置这一块详细讲一讲,因此便写了这篇。 本文…

    2025年6月13日
    000
  • Linux系统目录大小通过du命令获取实例

    使用过 Linux 系统的小伙伴都知道应该都知道, Linux 系统下的 ls 命令通常被我们用来查看文件目录的内容,但是不知道大家有没有细心留意,ls 命令所显示出来的每一个目录…

    2024年6月29日
    000
  • Linux 服务器必备的安全设置(推荐)

      好不容易买了服务器,如果因为自己的疏忽,被黑客黑掉的话,那真的是太糟糕了! 下面告诉你一些简单的方法提高服务器的安全系数,我的云服务器就是这么配置的,虽然有些麻烦,但…

    2024年8月21日
    000
  • LINUX安全设置之关于GRUB加密图文教程全解

    关于LINUX的启动装载程序GRUB加密,算是一件很平常的工作。但是今天我在网上查这个东西,发现好多人都写的很简单,而且方法都比较过时。所以,在此我更新下GRUB加密。和大家分享下…

    2024年8月9日
    000
  • Linux部署LAMP+Discuz+Mysql-Proxy读写分离

    MySQL读写分离的原理 其实就是让Master数据库处理事务性增、删除、修改、更新操作(CREATE、INSERT、UPDATE、DELETE),而让Slave数据库处理SELE…

    2017年12月14日
    000
  • CentOS 6.9搭建VSFTPD服务器

    一、vsftpd简介 vsftpd是”very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操…

    2017年12月14日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注