如何恢復從 /usr/bin 中刪除的文件?
**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
則將顯示新路徑。你看到的是這樣變化後的正常情況。不代表有什麼不妥。也不意味著一切都是正確的……但它可能是正確的。