千家信息网

Linux文件删除后空间未释放怎么办

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要为大家展示了Linux文件删除后空间未释放怎么办,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。前言当系统空间使用量过大需要清理空间或者清理某
千家信息网最后更新 2025年12月02日Linux文件删除后空间未释放怎么办

这篇文章主要为大家展示了Linux文件删除后空间未释放怎么办,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

前言

当系统空间使用量过大需要清理空间或者清理某个文件时,有时会出现执行了删除命令之后磁盘空间并没有释放,很多人首次遇到该情况时会比较困惑,在考虑是不是像windows系统的回收站一样,删除只是逻辑删除到回收站一样?其实不然,linux的回收站功能想了解的可以与我沟通或查资料了解一下,也是个比较实用的方法,此处我们主要实践文件删除后空间未释放问题。

1、 实验准备

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

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

/* 主要针对此文件操作 */[root@c7_2 local]# ll -h total 3.0G-rw-r--r--. 1 root root 2.5G May 4 17:43 all_backup.tar.gz/* 此时根目录使用量6.5G */[root@c7_2 ~]# df -lh Filesystem 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@c7_2 local]# 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@c7_2 local]# bg %1    [1]+ scp all_backup.tar.gz test@192.168.28.226:/home/test &

1.3 删除文件

/* 删除文件 */[root@c7_2 local]# rm -f all_backup.tar.gz /* 查看磁盘空间,没有变化 */[root@c7_2 local]# df -lh Filesystem    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/* 文件已不在 */[root@c7_2 local]# ll -h total 3.0Gdrwxr-xr-x. 2 root root 6 Apr 11 2018 bindrwxr-xr-x. 2 root root 6 Apr 11 2018 etcdrwxr-xr-x. 2 root root 6 Apr 11 2018 gamesdrwxr-xr-x. 2 root root 6 Apr 11 2018 includedrwxr-xr-x. 2 root root 6 Apr 11 2018 libdrwxr-xr-x. 2 root root 6 Apr 15 05:56 lib64drwxr-xr-x. 2 root root 6 Apr 11 2018 libexecdrwxr-xr-x. 2 root root 6 Apr 11 2018 sbindrwxr-xr-x. 5 root root 49 Nov 17 16:46 sharedrwxr-xr-x. 2 root root 6 Apr 11 2018 src

2、 处理方法

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

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

 yum install -y lsof

2.1 lsof查看文件

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

[root@c7_2 local]# 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@c7_2 local]# 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@c7_2 local]# kill -9 1799  1798/* 空间已释放 */[root@c7_2 local]# df -lh Filesystem        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 命令在线清空该文件,无需暴力的结束进程,如果此方法无效时再考了结束进程。

3、结语

本文主要适用于以下场景:

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

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

以上就是关于Linux文件删除后空间未释放怎么办的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。

文件 空间 进程 命令 拷贝 内容 回收站 情况 方式 磁盘 系统 学习 怎么办 使用量 场景 方法 日志 暴力 此方法 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米十谷歌商店连接不到服务器 档案馆服务器机房管理制度 工信部 网络安全规范 学生选座数据库 关护苗网络安全教育有感 数据库的主从配置 济南安卓软件开发公司哪家比较好 软件开发有产品经理的名字吗 无线传感器网络技术的讨论 网络安全法考试多选题答案 魔兽世界赛季服新开服务器 数据库中的信息服务如何勾选 青浦区手机软件开发公司 数据库连接池 单元测试 魔兽怎么在维护的时候切换服务器 互联网科技股逆势上涨 华为云服务器默认密码 济南科森网络技术有限公司 默纳克用服务器开电梯 不需要备案的云服务器 网吧服务器无盘费用多少钱一年 数据库技术培训中心 英国网络安全硕士排名 sap打印服务器正在运行 情侣服务器名字 服务器村庄 升级文件服务器 以计算机网络技术远程教育 数据库 网页 吉林新一代网络技术分类设计
0