意外覆蓋Linux上的二進製文件? 以下是如何恢復它

由於某些bug,shell腳本變得瘋狂,腳本覆蓋了二進製文件/ bin / ping。 這是如何恢復它。

/ bin / ping擦除
/ bin / ping擦除(來源:https://dribbble.com/TonyBabel)

有兩種方法可以解決這個問題。

簡單方法:從其他服務器複製它

只是運行相同版本的Linux發行版的另一個框中的scp文件:
$ sudo scp [email protected]:/bin/ping /bin/ping

正確的方法:搜索並重新安裝包

首先,查詢根據Linux發行版提供FILE / bin / ping的包:

Debian / Ubuntu Linux用戶類型

$ dpkg -S /bin/ping
iputils-ping: /bin/ping

現在只需使用重新安裝iputils-ping軟件包 apt-get命令 or apt命令:
$ sudo apt-get --reinstall install iputils-ping

RHEL / SL / Scientific / Oracle Linux用戶類型

$ yum provides /bin/ping
iputils-20071127-24.el6.x86_64 : Network monitoring tools including ping

現在只需使用重新安裝iputils包 yum命令:
$ sudo yum reinstall iputils

Fedora Linux用戶類型

$ dnf provides /bin/ping
iputils-20161105-1.fc25.x86_64 : Network monitoring tools including ping

現在只需使用dnf命令重新安裝iputils包:
$ sudo dnf reinstall iputils

Arch Linux用戶類型

$ pacman -Qo /bin/ping
/usr/bin/ping is owned by iputils 20161105.1f2bb12-2

現在只需使用pacman命令重新安裝iputils包:
$ sudo pacman -S iputils

Suse / OpenSUSE Linux用戶類型

$ zypper search -f /bin/ping
示例輸出:

正在加載存儲庫數據...正在讀取已安裝的軟件包... S | 姓名| 總結| 類型-+ --------- + ------------------------------------ + -------- | ctdb | 集群TDB | 包我| iputils | IPv4和IPv6網絡實用程序| 包
  | pingus | 免費旅鼠喜歡的益智遊戲| 包

現在只需使用zypper命令重新安裝iputils包:
$ sudo zypper -S iputils

如果其他一切都失敗了,請嘗試從備份中恢復該文件

你保留備份的原因就在這裡。 是時候從NAS服務器或磁帶設備恢復該文件了:
scp [email protected]:/backups/server1.cyberciti.biz/snap/lastest/bin/ping /bin/ping

可以做些什麼來避免將來出現這樣的問題?

在沙箱中進行測試是防止此類問題的絕佳方法。 必須注意確保變量具有價值。 以下是危險的:
echo "foo" > $file
也許如下所示會有所幫助(見“如果未定義變量,請設置默認變量“)
file="${1:-/tmp/file.txt}"
echo "foo" > $file

另一個 選項是在未定義變量時停止:
${Variable?Error $Variable is not defined}

 

資源