千家信息网

Linux文件后删除空间未释放问题怎么解决

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编今天带大家了解Linux文件后删除空间未释放问题怎么解决,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编
千家信息网最后更新 2026年11月03日Linux文件后删除空间未释放问题怎么解决

小编今天带大家了解Linux文件后删除空间未释放问题怎么解决,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习"Linux文件后删除空间未释放问题怎么解决"的知识吧。

实验准备
想模拟该场景的方式很多,主要是实现文件被占用的场景。最简单的方式是拷贝文件,另一个常见方式是对于会编程或shell功底较好的同学可以写程序或脚本不停的往一个文件里写入内容。本次主要通过拷贝文件来快速复现。

1.1 创建一个稍微大一点的文件

/* 主要针对此文件操作  */[root@liangxu]# ll -htotal 3.0G-rw-r--r--.  1 root root 2.5G May  4 17:43 all_backup.tar.gz/* 此时根目录使用量6.5G */[root@liangxu]# df -lhFilesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 12M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup/dev/mapper/centos-root 46G 6.5G 39G 15% //dev/sda1 1014M 150M 865M 15% /boottmpfs 378M 0 378M 0% /run/user/0

1.2 通过scp命令 占用该文件

/*   开始远程拷贝至其他主机 */[root@liangxu]#   scp all_backup.tar.gz   test@192.168.28.226:/home/test/The authenticity of host '192.168.28.226 (192.168.28.226)' can't be established.ECDSA key fingerprint is SHA256:QfJb1DogFmdZ0hkeVRvn2VHke+tkZ2+sNljhBBudooc.ECDSA key fingerprint is MD5:2a:8a:63:80:35:17:f7:e9:2a:ea:13:98:eb:26:30:ba.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.28.226' (ECDSA) to the list of known hosts.test@192.168.28.226's password:all_backup.tar.gz                                                                                                                                              0% 2432KB   2.4MB/s   17:53 ETA^Z[1]+  Stopped                 scp all_backup.tar.gz test@192.168.28.226:/home/test /* 放在后台运行 */[root@liangxu]# bg %1               [1]+ scp all_backup.tar.gz test@192.168.28.226:/home/test &

1.3 删除文件

此时删除 文件,再查看文件是否被删除,空间是否释放

/*   删除文件 */[root@liangxu]

02

处理方法

想模拟该场景的方式很多,

可以通过lsof (list opened files)命令查看已经打开的文件以及文件被哪个进程所占用。

lsof命令在最小化安装的系统中是没有,可以先通过yum安装

     yum install -y lsof

    2.1 lsof查看文件

    查看所有已打开文件并筛选出其中已删除状态(deleted)的文件

    [root@liangxu]# lsof |grep deletedfirewalld  818         root    6u      REG              253,0       4096   36061750 /tmp/ffi0SEit6 (deleted)gmain      818  998    root    6u      REG              253,0       4096   36061750 /tmp/ffi0SEit6 (deleted)tuned     1180         root    8u      REG              253,0       4096   33554962 /tmp/ffio5Nu8r (deleted)gmain     1180 1602    root    8u      REG              253,0       4096   33554962 /tmp/ffio5Nu8r (deleted)tuned     1180 1603    root    8u      REG              253,0       4096   33554962 /tmp/ffio5Nu8r (deleted)tuned     1180 1605    root    8u      REG              253,0       4096   33554962 /tmp/ffio5Nu8r (deleted)tuned     1180 1606    root    8u      REG              253,0       4096   33554962 /tmp/ffio5Nu8r (deleted)scp       1798         root    3r      REG              253,0 2665433605  104181296 /usr/local/all_backup.tar.gz (deleted)

    发现了我们刚删除的文件以及被那个进程所打开

    2.2 查看进程

    通过lsof发现了all_backup.tar.gz 文件被1798 号进程所占用,可以查看该进程具体是什么

    [root@liangxu]# ps -ef|grep 1798root       1798   1729  0 17:47 pts/0    00:00:00 scp all_backup.tar.gz test@192.168.28.226:/home/testroot       1799   1798  2 17:47 pts/0    00:00:03 /usr/bin/ssh -x -oForwardAgent=no -oPermitLocalCommand=no -oClearAllForwardings=yes -l test -- 192.168.28..226 scp -t /home/testroot       1868   1806  0 17:49 pts/1    00:00:00 grep --color=auto 1798

    正是我们之前执行的拷贝命令

    2.3 释放空间

    对于此种查询状态情况,需要结束对应程序

      /*  杀掉对应进程 */[root@liangxu]# kill -9 1799   1798/* 空间已释放 */[root@liangxu]# df -lhFilesystem               Size  Used Avail Use% Mounted ondevtmpfs                 1.9G     0  1.9G   0% /devtmpfs                    1.9G     0  1.9G   0% /dev/shmtmpfs                    1.9G   12M  1.9G   1% /runtmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup/dev/mapper/centos-root   46G  4.0G   42G   9% //dev/sda1               1014M  150M  865M  15% /boottmpfs                    378M     0  378M   0% /run/user/0

      注:如果是持续写入日志的想清空日志等情况,可以使用 echo " ">filename 命令在线清空该文件,无需暴力的结束进程,如果此方法无效时再考虑结束进程。


      本主要适用于以下场景:

      • 删除文件空间未释放
      • 磁盘满了 但是找不到文件

      再提示一遍,如果可以使用 echo " ">filename 命令在线清空文件,则无需暴力的结束进程,如果此方法无效时再考虑结束进程。

      什么是Linux系统

      Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

      感谢大家的阅读,以上就是"Linux文件后删除空间未释放问题怎么解决"的全部内容了,学会的朋友赶紧操作起来吧。相信小编一定会给大家带来更优质的文章。谢谢大家对网站的支持!

      文件 进程 空间 命令 问题 拷贝 方式 系统 内容 朋友 程序 操作系统 场景 情况 文章 日志 暴力 此方法 状态 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 中智农互联网科技 百单网互联网科技有限公司 广东猪兼强互联网科技有限公司 科技创新与互联网经济 互联网中国科技 期待互联网科技 奇酷互联网络科技公司 互联网科技小额贷款 互联网科技英文翻译 互联网金融科技委员会 滨湖区互联网智能科技产品供应 衡水科技产业互联网平台 字节跳动和互联网科技 顶级互联网科技成果有哪些 花神(南京)互联网科技有限公司 中国航天科技大学国际工业互联网 青岛科技大学互联网大赛研究生 东营紫格互联网科技 福建互联网展示科技馆设计 贷财互联网科技 深圳卡尔迅互联网科技有限公司怎么样 北京华百购互联网科技有限公司 中国航天科技大学国际工业互联网 西安小鹰速贷互联网科技有限公司 群盈汇互联网科技有限公司 国大互联网教育科技有限公司薪资 互联网安防科技感 保山互联网科技靠谱吗 科技信息时代互联网发展
      0