如何恢复从 /usr/bin 中删除的文件?

如何恢复从 /usr/bin 中删除的文件?

长话短说在底部。


背景:

我的 CentOS 6.10 生产服务器上发生了以下情况。我使用基于浏览器的终端程序来运行 Midnight Commander 程序,这是一个基于控制台的文件浏览器。不幸的是,该终端上的鼠标支持未正确设置,我无意中mv对文件夹内的多个文件应用了操作/usr/bin。可执行文件已移至另一个目录。我能够将文件移回/usr/bin,但我想确保一切都已恢复。


对损坏的文件进行测试:

已移动的可执行程序之一是仍在运行的程序。它被称为dbus-daemon。我能够确定这是847我的机器上的进程。

当我运行时readlink -f /proc/847/exe,它不会返回任何内容。

ls -l | grep exe当我在文件夹中运行命令时/proc/847,我得到

lrwxrwxrwx 1 root root 0 Dec 4 01:01 exe -> \ (deleted)/bin/dbus-daemon


对工作文件进行测试:

我决定将其与不受该mv操作影响的正常可执行文件进行比较。我选择chrond看看是否得到相同的结果。是我机器上的chrond进程。1187

当我运行时readlink -f /proc/1187/exe,它返回/usr/sbin/crond

ls -l | grep exe当我在文件夹中 运行命令时/proc/1187/,我得到

lrwxrwxrwx 1 root root 0 Dec 4 01:01 exe -> /usr/sbin/crond*

我希望通过将文件移回原处,可以消除损坏。但命令没有返回预期结果。


长话短说我的问题是:如果我将可执行文件移出/usr/bin/,我可以将其移回而不会出现任何问题吗?如果没有,我还能做些什么来确保我可以安全地重新启动我的机器?

答案1

之所以proc看到二进制文件,是deleted因为您已将其移出文件系统。如果您已将其移动到卷内,proc则会显示新路径。

你看到的就是这样改变后的正常情况。并不意味着有什么问题。也不意味着一切都是正确的……但很可能是这样。

相关内容