Linuxで「削除」されたが、まだ使用されているファイルのリポジトリを回復する方法は?

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ですが、「一般条件」について質問します。

質問:スペースを解放するために削除されたファイルを保存したプロセスを再起動せずに削除する方法は?

ベストアンサー1

の項目を使用して、/procこれらのファイルを切り捨てることができます。

# ls -l /proc/4315/fd

これにより、プロセス4315で開かれたすべてのファイルが表示される。すでに使用しており、lsof削除されたファイルはファイル記述子135として表示されるため、次のように削除されたファイルが使用するスペースを解放できます。

# > /proc/4315/fd/135

ファイル記述子133を持つプロセス44654によって開かれた他の削除されたファイルにも同様に適用されます。

# > /proc/44654/fd/133

これでスペースが解放されたことがわかります。

また、削除されたがプロセスによってまだ開いているファイルの内容をコピーするためにも使用できますcp /proc/XXX/fd/YY /some/other/place/filename

おすすめ記事