如何在Linux上回收“已删除”但仍在使用的文件的存储?

用户名
SERVER:~ # df -mP /home/
Filesystem         1048576-blocks      Used Available Capacity Mounted on
/dev/mapper/rootvg-home_lv       496       491         0     100% /home
SERVER:~ # 
SERVER:/home # lsof | grep -i deleted | grep -i "home" | grep home
badprocess   4315     root  135u   REG      253,2   133525523      61982 /home/username/tr5J6fRJ (deleted)
badprocess2  44654     root  133u   REG      253,2   144352676      61983 /home/username/rr2sxv4L (deleted)
...
SERVER:/home # 

文件仍在使用时被删除。因此它们仍然占用空间。但是我们不想重新启动“ badprocess *”。操作系统是SLES9,但我们要求“一般”。

问题:如何在不重新启动保存它们的过程的情况下删除这些已删除的文件,从而释放空间?

您可以使用中的条目/proc来截断此类文件。

# ls -l /proc/4315/fd

这将显示由进程4315打开的所有文件。您已经使用过lsof,并且显示已删除的文件是文件描述符135,因此您可以按以下方式释放该已删除文件使用的空间:

# > /proc/4315/fd/135

对于由进程​​44654打开的其他已删除文件,也是如此,那里是文件描述符133,因此:

# > /proc/44654/fd/133

现在,您应该看到空间已释放。

您还可以使用它来复制已删除但仍由进程保持打开状态的文件的内容cp /proc/XXX/fd/YY /some/other/place/filename

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仍在使用时还原已删除的文件

如何在jetpack compose上回收webview?

如何使用垃圾回收删除文件?

如何删除.gitignore中列出但仍在存储库中的文件?

AUFS如何存储已删除的文件?

如何在Git存储库中删除多个已删除的文件

如何在Windows 7中取消删除“空回收”文件?

如何在Git存储库中查找和恢复已删除的文件

如果我提交的存储库或分支不再存在,如何在 git 中恢复已删除的文件

如何使从已安装分区中删除的文件进入CentOS 7上的“回收站”

如何在Windows 7和Windows 8.1中从回收站中查找已删除的数据?

如何在Linux上访问已删除的打开文件(正在运行的crontab任务的输出)?

如何在Linux中使用crontab删除某些文件

Git存储库如何恢复已删除的文件?

如何在磁盘SourceTree上还原已删除的存储库

如何在使用 --bare 创建的存储库中获取已更改的文件

如何使用ln(而不是cp)在Linux上恢复打开但已删除的文件?

如何在UNIX系统上回显/打印实际文件内容

如何在 CICS 上回滾對 VSAM 文件的更改?

如何补偿仍在进行的数组迭代中已删除的元素?

如何在JavaScript中存储已解析的YAML文件的行号?

docker已删除,但仍在更新

已删除的图像仍在显示

如何在Arch Linux中恢复已删除的命令?

如何在Linux中删除重复文件

如何在Java中将文件/目录移动到回收站,而不是将其永久删除

如何在git中取消转储已删除的文件

如何在复杂的git rebase中还原已删除的文件?

如何在Windows 7中恢复已删除的文件?