三二互联专业提供速度最快最稳定的美国服务器、香港服务器。中美直连,亚洲优化![ 代理登陆 ] [ 付款方式 ] [ 找回密码 ][ 电子协议责任书 ]
硬件资源保障

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

如何查找已删除但仍被进程占用的文件?

美国、香港服务器

如何查找已删除但仍被进程占用的文件?

08-16   来源:

 在 Linux 系统中,当文件被删除但仍被进程占用时,磁盘空间不会真正释放(因为进程仍在访问该文件的 inode)。可以通过 lsof 命令快速查找这类文件,具体方法如下:

核心命令:查找已删除但被占用的文件
bash
lsof +L1
命令说明:
+L1 是 lsof 的特殊参数,用于筛选链接数小于 1的文件(即已被删除但仍被进程占用的文件)。
输出结果解读
执行命令后,输出中关键列的含义:
 
COMMAND:占用文件的进程名称
PID:进程 ID
USER:进程所属用户
NAME:被删除的文件路径(通常会标记 (deleted))
 
示例输出:
 
plaintext
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NLINK     NODE NAME
nginx    1234   root    5u   REG    8,1   102400     0    12345 /var/log/nginx/access.log (deleted)
 
表示:PID 为 1234 的nginx进程仍在占用已删除的/var/log/nginx/access.log文件。
扩展:精准筛选特定目录的已删除文件
若只需查找某个目录下被删除的文件(如 /var/log),可结合目录路径筛选:
 
bash
lsof +L1 | grep /var/log
释放被占用的磁盘空间
找到这类文件后,要释放磁盘空间,需重启占用文件的进程(让进程停止访问已删除的文件):
 
bash
# 重启进程(以PID 1234为例)
sudo kill -9 1234  # 先终止进程
# 再重启进程(根据实际服务名,如 nginx、mysql 等)
sudo systemctl start nginx
 
 
注意:若进程是关键服务(如数据库),建议先优雅停止(systemctl stop)再重启,避免数据损坏。
总结
用 lsof +L1 查找所有已删除但被占用的文件;
根据输出的 PID 和 COMMAND 定位占用进程;
重启对应进程释放磁盘空间。
 
这是解决 “磁盘空间明明有删除操作但未释放” 问题的核心方法。

三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快

上一篇:如何查看指定进程打开的文件? 下一篇:lsof命令的其他用法有哪些?

美国GIA服务器三二互联版权所有 WWW.250.cc 2008-2015 All Rights Reserved
三二互联 - 专业的美国C3服务器香港vps、抗DOOS流量清洗、云备份系统、网站加速系统、美国GIA服务器和香港云服务器产品提供商
三二互联24小时在线工单系统为您提供全面、专业、周到的技术支持与服务
咨询热线:400-679-9994(免长话费)