Was ist der größte Schaden (welcher Art auch immer), den Sie jemals mit einer einzigen fehlerhaften / falsch getippten / fehlgeleiteten Befehlszeile angerichtet haben? Ich habe zum Beispiel vor einiger Zeit versehentlich eine Produktionssystemdatenbank gelöscht, aber ich hatte Glück (dh ein Backup), und es gab keinen dauerhaften Datenverlust, keinen Geldverlust, keinen Sachschaden usw.
Was tun Sie vor allem (bei Abstimmungen), um sicherzustellen, dass es nie wieder vorkommt?
command-line-interface
Mark Henderson
quelle
quelle
Antworten:
In SQL Server auf einem Produktionssystem:
Die letzte Sicherung war ungefähr eine Woche alt.
Um dies zu mildern, schreibe ich jetzt normalerweise zuerst eine
select
Anweisung, um sicherzustellen, dass diewhere
Klausel korrekt ist, und bearbeite sie dann erneut, um dieset
Klausel einzufügen und die Anweisung in zu ändernupdate
.quelle
Größter Fehler? Ich dachte, ich hätte zwei Variablen gesetzt, als ich es nicht getan hätte. Also wurde aus rm -rf $ VARIABLE / $ VARIABLE2 rm -rf /. FreeBSD hat kürzlich sein rm-Tool aktualisiert, so dass rm -rf / aufgrund dieses Fehlers nicht mehr möglich ist!
quelle
Dies ist für die lokale Workstation gedacht, wurde jedoch während der Anmeldung über ssh auf dem Produktionsserver eingegeben. Seitdem habe ich immer einen Hostnamen in meinem
$PS1
.quelle
Auslassen von -r bei einem Befehl zum Herunterfahren. Auf einem Remote-Server. Auf der anderen Seite des Landes. Ohne IT-Mitarbeiter im Remote-Büro.
Wir haben es alle geschafft, es ist zu diesem Zeitpunkt fast wie ein Übergangsritus.
quelle
Auf einem VMS-System habe ich den Befehl ASSIGN DCL zum Zuweisen logischer Namen verwendet und wollte eine vorherige ASSIGN-Befehlszeile abrufen. In VMS haben Sie nur so viele Zeichen eines Befehls eingegeben, um ihn eindeutig zu machen. Also wollte ich tippen
REC ASS
aber ich habe versehentlich getippt
REQ ASS
stattdessen. REQ war für den Befehl REQUEST ausreichend eindeutig, der das Argument an alle Benutzer mit Operatorprivilegien (die alle in der IT waren) weiterleitet. So erhielt die gesamte Abteilung meine Broadcast-Nachricht, die einfach "ASS" lautete.
quelle
Auf einem Solaris-System: "killall dataLoader".
'dataLoader' war eine App, an der ich gearbeitet habe. Unter Linux funktioniert killall wie pkill. Es sendet ein Signal an Prozesse, die mit einer als Argument angegebenen Zeichenfolge übereinstimmen. Unter Solaris versucht killall, alles auf dem System zu beenden, was der aktuelle Benutzer beenden kann. Ich war root.
quelle
java
sicher getötet . ;)Vor vielen, vielen Monden musste ich einmal eine bestimmte ausführbare Datei finden, konnte mich aber nicht an den vollständigen Namen erinnern (konnte mich aber an einige Buchstaben erinnern). Also dachte ich mir, ich würde das Verzeichnis / usr / bin mit so etwas überprüfen
Seltsam. Nichts kehrte zurück. Als ich herausfand, dass ich mich gerade an den zweiten Brief erinnert hatte, versuchte ich es erneut mit
Wieder nichts. Nachdem ich das gleiche mit / usr / local / bin, / usr / sbin und allem, was ich vermutet hatte, getan hatte, wurde mir klar, dass ich den Befehl 'ls' falsch eingegeben hatte.
Ich weiß nicht genau, woher der Brainfart stammt, aber es ist definitiv kein Fehler, den ich jemals wieder gemacht habe.
quelle
Es war Windows Vista.
quelle
Der Versuch, die Eigentümerschaft für alles in einem Verzeichnis zu ändern, einschließlich Punktdateien, mit:
Ratet mal, was das macht?
quelle
Um / dev / sdb zu zerstören, hatte ich zum Glück ein aktuelles Backup
quelle
Auf einer Produktionskiste. Beachten Sie das Fehlen einer
on
Klausel. :-) Beide Tabellen waren mehrere Millionen Zeilentabellen, und dies war auf einem AS / 400 in der Mitte der 90er Jahre, als SQL noch lief, konnte man es nicht töten.quelle
Auf einem unserer Datenproduktionsserver hat einer meiner Stammdaten Folgendes eingegeben:
Weil er bei einigen Skripten einen Berechtigungsfehler bekam ...
Kurz darauf wurde sein privater Schlüssel von allen Servern entfernt und er kümmerte sich um die 1 TB Datenwiederherstellung auf dem Datenproduktionsserver ...
quelle
Mein Favorit war, als ich an der Universität war. Ich habe eine Anwendung erstellt (ich erinnere mich nicht an was) und da ich nicht root war, hatte ich sie mit erstellt
So konnte ich es in mein Home-Verzeichnis installieren. Leider hat es sich eingebaut in
stattdessen. Natürlich habe ich ausgeführt, um es als Start wieder zu löschen
Im Quellverzeichnis.
Ich fragte mich, warum es so lange dauerte ...
:-)
Das Schlimmste war jedoch, als ich mit einer Solaris-Workstation arbeitete und nachdem wir alles eingerichtet hatten, wollten wir die Konfiguration für die Live-Konfiguration löschen. Also habe ich ausgeführt
Einverstanden mit der Warnmeldung und stattdessen den Rechner neu zu starten und auf "Werkseinstellungen" zurück zu kehren. Das xterm-Fenster sagte einfach:
Moral der Geschichte Lassen Sie niemals eine Root-Shell auf einem anderen Host offen! JE!!
quelle
Vor vielen Jahren war ich zu Hause, um ein paar Sachen in PHP zu programmieren, während ich an einem Projekt mit einem Freund von mir arbeitete, der der Projektbetreuer war. Im Rahmen einer Zusammenarbeit haben wir uns gegenseitig kontaktiert. Wir scherzen immer im Spiel hin und her.
Ich habe versucht, ssh-agent dazu zu bringen, ordnungsgemäß auf meinem Computer zu arbeiten, während wir einen Religionskrieg zwischen Perl und PHP hatten. Dann erwähnte ich etwas darüber, dass ssh-agent bewertet werden muss (nicht sicher, warum ich das gesagt habe). Also schickte er mir diese Nachricht in dem Bemühen, mir bei meinem Problem zu helfen (denken Sie daran, dass ich zum Wurzeln verurteilt war):
WARNUNG! LASSEN SIE DIESEN BEFEHL NICHT LAUFEN !!!
WENN Sie das eval entfernen und den inneren Befehl von selbst ausführen, ist es:
Ich brauchte 4 Sekunden, um zu bemerken, was passierte, aber der Schaden war bereits angerichtet. Ich musste mein Betriebssystem neu installieren. Zum Glück wurde nichts von meiner Arbeit ausgelöscht, außer ein paar Sachen in / etc iirc. Er hatte ein RIESIGES Lachen, als ich ihm eine Nachricht des Grauens schickte und fragte, warum er das tat. Wir sind beide langjährige Systemingenieure. Er glaubte nicht, dass ich es laufen lassen würde und würde es vor dem Einchecken sorgfältiger prüfen, und ich vertraute ihm einfach, sodass ich nicht einmal daran dachte, dass er herumspielte. Unnötig zu erwähnen, dass diese kleine Geschichte die ganze Zeit zwischen uns auftaucht. Also beschloss ich, es zu verewigen.
Wie habe ich dieses Problem behoben? Ich vertraue niemandem!
Eine andere, weniger interessante Geschichte ist, dass ich vor ein paar Jahren bei der Arbeit an einer missionskritischen Box gearbeitet habe. Ich hatte ein paar Begriffe offen für verschiedene Maschinen. Ich musste einige überflüssige Sachen in einem Verzeichnis entfernen. Nun, ich habe mich in meinen Begriffen verlaufen und bin aus Versehen dazu gekommen . in meinem lokalen Verzeichnis aber auf dem falschen Host (falscher Begriff) !!. Ich habe den Befehl in / var / lib / mysql anstelle von / tmp auf dem Anwendungsserver ausgeführt (anderer Begriff). Unnötig zu erwähnen, dass ich die Produktionsdatenbank gelöscht habe. Glücklicherweise hatten wir einen warmen Standby-Modus, zu dem wir gewechselt haben, während ich und ein Kollege den primären aus Backups und dem Standby-Modus wiederhergestellt haben. Das hat ungefähr 18 Stunden gedauert.
Schadensbegrenzung: Überlegen Sie sich vor der Ausführung, in welchen Fenstern ich Befehle ausführe.
quelle
die kurze version
quelle
kill -9 -1
#!/bin/bash
, und ich denke, das würde einen Codegolf für die kürzeste Gabelbombe in der Bash gewinnen.Ich wollte mal ein paar Dateien in einem Verzeichnis löschen.
Der Computer sagte dann: "Bist du sicher? [J / N]" Ich dachte: "Natürlich, ich bin sicher, ich hätte den verdammten Befehl nicht anders eingegeben! Meine Güte, dumme Computer murren ..."
Ähm ... WTF? Habe ich gerade mein Windows-Verzeichnis gelöscht? ....
In Zeiten kleiner Festplatten wusste ich, wofür jede Datei in c: \ windows bestimmt war und wie sie hieß, aber selbst nachdem alles wiederhergestellt war, war das System nie dasselbe. Ich habe ein wenig Respekt für die Aufforderung "Bist du sicher?" Gewonnen. Nur ein wenig.
quelle
Ich glaube, das Dümmste, was ich jemals getan habe, war, die Standardroute auf einem externen Firewall-Cluster zu entfernen - während ich über hundert Meilen auf meinen Desktop gefahren bin.
Glücklicherweise war dies ein Zeitraum, der als geplante Ausfallzeit ausgewiesen war (nur für den Fall), aber das ersparte mir nicht die 200-Meilen-Hin- und Rückfahrt, um die Firewall vor Ort neu zu konfigurieren. Es hat auch nicht geholfen, dass dies unsere internetexponierten Produktionssysteme für die Dauer meiner Reise und der anschließenden Reparatur herausgenommen hat.
Wir alle kennen die Definition einer Nanosekunde. Eine ohno-Sekunde ist noch kleiner und ist die Zeit zwischen dem Drücken der Eingabetaste und dem Erkennen Ihres Fehlers.
quelle
Erster von zwei ...
Auf einer Solaris-Box hatten wir eine Tar-Sicherung einer AIX-Maschine.
Einer der Entwickler schrieb:
Natürlich waren die Pfade in der Steuer absolut und wir machten eine neue Distribution von Unix ... Solarix ... Das einzige Problem mit der Distribution ist, dass es nicht gebootet wurde :(
quelle
Geschichte erzählte mir:
Eine andere Zweigstelle rief an, weil ihre lokale Telefonanlage einige Probleme hatte. Nach einigen Nachforschungen haben wir festgestellt, dass sie ihren Server aktualisiert haben, aber nicht ihre Asterisk-Konfiguration. Also beschloss der Administrator, den Zweigstellenmitarbeiter anzuweisen, die Konfiguration zu wiederholen.
quelle
anstatt
Zum Glück ist es mir nicht passiert ;-)
quelle
Meine Absicht war Source .bashrc, aber ich war zu voreilig mit Tab-Vervollständigung ...
quelle
Etwas in dieser Richtung:
Ich meinte sda4. Ich habe die gesamte Festplatte gelöscht, nicht nur die Partition :-(
quelle
XCOPY
ist ein mächtiges Biest - erbarmungslos in seiner Ausführung und verzögert durch die Tatsache, dass seine Kommandozeilenargumente umgekehrt sind wie die von WindowsCOPY
und UNIXcp
.Vor ein paar Tagen schrieb ich versehentlich:
XCOPY
war so nett, meinsrc
Verzeichnis mit ... nichts zu überschreiben ! Und es hat auch nicht die Mühe gemacht, die alten Dateien in den Papierkorb zu legen.Oh, und es stellt sich heraus, dass
XCOPY
tatsächlich dieselben Sektoren auf der Festplatte überschrieben werden, anstatt neue zuzuweisen. Ich habe 3 Festplattenwiederherstellungsprogramme ausprobiert, und das beste Programm konnte nur 3 der 10 verlorenen Dateien wiederherstellen. Natürlich waren diese 3 Dateien nurvshost.exe
und seine Freunde. Anschwellen!quelle
hatte Probleme mit dem Netzwerk (auf einem Remote-Computer) und wollte nur die Schnittstelle neu starten
Heutzutage stelle ich sicher, dass sich jemand in der Nähe der Maschine befindet, bevor ich solche Dinge probiere (iptables ist auch ein guter Kandidat). Und als niemand da war, habe ich einmal getippt
in ein anderes (Bildschirm-) Terminal, sodass es neu startet, wenn ich den Befehl nicht innerhalb von 10 Minuten mit Strg + C ausführen könnte.
Ich habe auch aus diesem Fehler gelernt (Strg + C, der Ruhezustand startet den Neustart) und jetzt benutze ich
Dadurch kann ich Strg + C drücken.
quelle
shutdown -r +5
startet das System in 5 Minuten neu, es sei denn, Sie beenden denshutdown
Prozesskillall shutdown
zum Beispiel mit.Hoppla, ich bin auf der externen Seite von eth0. Der Webserver befindet sich auf der anderen Seite der Welt in einem verschlossenen Raum. Ohne Netzwerkzugriff zum Anmelden oder Neustarten. Mist.
quelle
Ein kostenloses Cookie für jeden, der mir sagen kann, warum ich ein Idiot war, der versucht hat, alle versteckten Dateien und Verzeichnisse auf diese Weise zu entfernen:
rm -rf. *
quelle
..
Hardlink entsprichtBeim Bereinigen meines Basisordners auf einem Produktions-Webserver habe ich vergessen, dass ich den Webstamm des Servers mit einem Ort in meinem Basisordner verknüpft habe. Ich habe nicht gedacht, ich habe eine rm -rf für diesen Ordner ausgeführt und als nächstes, was ich weiß, rufen die Leute an, dass die Website ausgefallen ist!
HOPPLA!
quelle
Ich habe einmal Daten in zwei Ordnern verglichen und rsync mit der Option -d ausgeführt (Dateien auf dem Ziel löschen, die sich nicht auf der Quelle befinden). Und dann habe ich Quelle und Ziel gewechselt, als ich rsync ausgeführt habe. Das hat alle neuen Dateien gelöscht, die ich sichern wollte. Jetzt habe ich gelernt, rsync mit -n (Probelauf) auszuführen.
Ich hatte kein Backup.
quelle
Es war einmal (wahrscheinlich System III, aber es ist lange her), es war möglich, eine Datei
*
mit dem richtigen Shell-Zitat zu erstellen . Als ich eines in meinem Home-Verzeichnis fand, hatte ich es eingegebenrm *
und den Finger auf die Eingabetaste gelegt, als mich etwas zum Zögern brachte und darüber nachdachte ...Das Erstellen einer solchen Datei für andere Benutzer war ein häufiger Streich.
Befindet sich die Datei in einem Verzeichnis, ist dies nur schwer zu entschärfen. Der Reflex, einfach seinen Namen genau so einzugeben
ls
so einzugeben gerade angezeigt wird, ist ziemlich stark.Der andere (weniger schädliche) Streich war, Dateien mit nachgestellten Leerzeichen (oder nur Leerzeichen) zu benennen, die viel schwieriger zu entfernen waren ...
quelle
Aufgrund einiger schlechter Erfahrungen mit allgemeinen JBoss-Problemen nach einem Neustart möchte ich die Arbeitsdateien von JBoss vor einem Neustart löschen. Ich würde normalerweise tun:
Um mich davor zu schützen, einen der vielen möglichen katastrophalen Fehler zu tippen, wie zum Beispiel:
Ich gebe den letzten Befehl:
Da der JBoss-Benutzer Schwierigkeiten haben würde, wichtige Dateien zu entfernen, die nicht dazu gehören.
Ich habe diesen Fehler nie gemacht, aber ich bin in dem Fall, dass ich es tue, in Sicherheit.
quelle