Uheldigvis overskriver en binær fil på Linux? Sådan repareres det her

Et shell script gik vildt på grund af nogle fejl, og scriptet overskriver en binær fil / bin / ping. Her er hvordan du genopretter det.

/ bin / ping slettet
/ bin / ping slettet (Kredit: https://dribbble.com/TonyBabel)

Der er to måder at løse dette problem på.

Nem måde: Kopiér den fra en anden server

Bare scp-fil fra en anden boks, der kører den samme version af din Linux-distribution:
$ sudo scp [email protected] : / bin / ping / bin / ping

Korrekt måde: Søg og geninstaller pakke

Forsøg først pakken, som indeholder FIL / bin / ping som i din Linux distro:

Debian / Ubuntu Linux brugertype

$ dpkg -S / bin / ping iputils-ping : / bin / ping
Nu skal du bare geninstallere iputils-ping-pakken ved hjælp af apt-get kommando or apt kommando:
$ sudo apt-get - reinstall installer iputils-ping

RHEL / SL / Scientific / Oracle Linux brugertype

$ yum giver / bin / ping iputils-20071127-24.el6.x86_64 : Netværksovervågningsværktøjer, herunder ping
Nu skal du blot geninstallere pakken iputils ved hjælp af yum kommandoen:
$ sudo yum geninstallere iputils

Fedora Linux bruger type

$ dnf giver / bin / ping iputils-20161105-1.fc25.x86_64 : Netværksovervågningsværktøjer, herunder ping
Nu skal du blot geninstallere iputils-pakken vha. Dnf-kommandoen:
$ sudo dnf geninstaller iputils

Arch Linux brugertype

$ pacman -Qo / bin / ping / usr / bin / ping ejes af iputils 20161105.1f2bb12-2
Nu skal du blot geninstallere iputils-pakken ved hjælp af pacman-kommandoen:
$ sudo pacman -S iputils

Suse / OpenSUSE Linux brugertype

$ zypper search -f / bin / ping
Prøveudgange:

Indlæser lagerdata ... Læs installerede pakker ... S | Navn | Sammendrag | Type - + --------- + ------------------------------------ + -------- | ctdb | Clustered TDB | pakke i | iputils | IPv4 og IPv6 Networking Utilities | pakke
  | pingus | Gratis Lemmings-lignende puslespil | pakke

Nu skal du blot geninstallere iputils-pakken ved hjælp af zypper-kommandoen:
$ sudo zypper -S iputils

Hvis alt andet fejler, skal du prøve at genoprette filen fra backup

Grunden til at du holder sikkerhedskopier er her. Det er på tide at gendanne den fil fra NAS-server eller tape-enhed:
scp [email protected] : /backups/server1.cyberciti.biz/snap/lastest/bin/ping / bin / ping

Hvad kan man gøre for at undgå et sådant problem i fremtiden?

Test i en sandkasse er en glimrende måde at forhindre et sådant problem på. Der skal udvises forsigtighed for at sikre, at variablen har værdi. Følgende er farligt:
ekko "foo"> $ fil
Måske noget som følger ville hjælpe (se "Hvis variabel ikke defineres, skal du angive standardvariabel")
file = "$ {1: - / tmp / file.txt}" ekko "foo"> $ fil
En anden mulighed er at stoppe hvis variabel ikke er defineret:
$ {Variabel? Fejl $ Variabel er ikke defineret}

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.