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] 删除。
我来说两句