有时人们删除他们不应该删除的文件,长时间运行的进程仍然打开文件,通过 catting 恢复数据/proc/<pid>/fd/N
还不够棒。如果您可以通过对 ln 运行一些魔术选项来“撤消”删除,这将让您重新链接到 inode 编号(通过 lsof 恢复),那就太棒了。
我找不到任何 Linux 工具来做到这一点,至少用粗略的谷歌搜索。
你有什么,服务器故障?
EDIT1:从文件中捕获文件的原因/proc/<pid>/fd/N
还不够棒,因为仍然打开文件的进程仍在写入文件。删除会从文件系统命名空间中删除对 inode 的引用。我想要的是一种重新创建参考的方法。
EDIT2: 'debugfs ln' 有效,但风险太高,因为它会破坏原始文件系统数据。恢复的文件也疯狂不一致。链接数为零,我无法向其添加链接。我的情况更糟,因为我可以/proc/<pid>/fd/N
用来访问数据而不会破坏我的 fs。