Centos

如何恢復從 /usr/bin 中刪除的文件?

  • May 30, 2020

**TL;**底部的 DR。


背景:

以下發生在我的 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*

我希望通過將文件移回,可以消除損壞。但是這些命令沒有返回預期的結果。


TL;DR我的問題是:如果我將執行檔移出/usr/bin/,我可以毫無問題地將其移回嗎?如果沒有,我還能做些什麼來確保我可以安全地重啟我的機器?

proc看到二進製文件的原因deleted是您已將其移出文件系統。如果您已在卷內移動它,proc則將顯示新路徑。

你看到的是這樣變化後的正常情況。不代表有什麼不妥。也不意味著一切都是正確的……但它可能是正確的。

引用自:https://unix.stackexchange.com/questions/589860