Ungewollten Shutdown oder Neustart eines Linuxsystems verhindern

Heute war es nun endlich soweit. In meiner nicht mehr ganz so kurzen Laufbahn als #Sysadmin habe ich es geschafft ein (Kunden)System aus versehen herunterzufahren. Angemeldet, root geworden, halt eingegeben, Schrecksekunde, shutdown -c eingegeben, Connection lost…

Per Twitter wurde ich dann auf das Paket „molly-guard“ aufmerksam gemacht.

https://twitter.com/derjoern/statuses/626343427941236736

Die Beschreibung des Debian-Paketes sagt dazu:

Schützt Rechner vor unbeabsichtigtem Herunterfahren/Neustart
 
Dieses Paket installiert ein Shell-Skript, welches die Befehle 
shutdown/reboot/halt/poweroff überlagert. Das Skript ruft zunächst 
eine Reihe weiterer Skripte auf, die alle erfolgreich durchlaufen 
müssen, bevor molly-guard den realen Befehl aufruft.
 
Eines der Skripte sucht nach bestehenden SSH-Sitzungen. Wenn einer 
der vier Befehle interaktiv innerhalb einer SSH-Sitzung aufgerufen 
wird, fragt Sie das Shell-Skript nach dem Namen des Rechners, der 
heruntergefahren werden soll. Das sollte Sie angemessen vor 
unbeabsichtigtem Herunterfahren und neuem Starten schützen.
 
molly-guard lenkt die ursprünglichen Binärprogramme nach 
/lib/molly-guard/ um. Sie können molly-guard umgehen, indem Sie die 
Binärprogramme direkt aufrufen.

Für die Zukunft habe ich mir gemerkt: apt-get install molly-guard

Snippets: git, aptitude, who, mysql, tcpdump, lftp

Ein Sammelsurium von diversen Kommandos die sich angesammelt haben und die ich mir eben aufschreiben musste:

  • GIT – Die Aenderungen von Commit XYZ anzeigen:
    git show COMMITHASH
  • GIT – In den git commit messages suchen:
    git log --all --grep "foo"
  • GIT – Was hab ich noch mal in dieser Datei seit dem letzten pullen geaendert?
    git diff HEAD /path/to/file
  • APTITUDE – Was ist die Abhaengigkeitskette warum dieses Paket installiert ist:
    aptitude why PACKAGENAME
  • WHO – Wann wurde das System das letzte mal neu gestartet?
    who -b
  • MYSQL – Wie erzeuge ich die Tabelle neu:
    SHOW CREATE TABLE tabellenname;
  • TYPDUMP – Mit tcpdump den Traffic mitschneiden und in einer Datei speichern um diese später mit wireshark zu analysieren:
    tcpdump -i eth0 host 192.168.1.30 -X -s0 -w /tmp/foo
  • LFTP: Verzeichnislisting rekursiv erzeugen und Ausgabe in einer Textdatei speichern:
    lftp -u user,pass -e 'find /;bye' host > file_list