Meine Top-10 Fehler mit Linux Befehlen

by

 

Jemand der nie einen Fehler gemacht hat, hat nie etwas neues ausprobiert. — Albert Einstein.

Hier sind ein paar der gravierensten Fehler die ich am Unix Promt gemacht habe.
Einige der Fehler kosten mich eine längere Downtime des Server. Viele der Fehler sind aus frühen Linux Zeiten.

No. 01: Befehl – userdel

Die Datei /etc/deluser.conf war zum löschen des home Verzeichnisses und des Mail Spool des Users konfiguriert.
Eigentlich wollte ich nur den User Account löschen und am Ende löschte ich alles (Info: -r war via deluser.conf aktiviert):

No. 02: Solaris Box Rebooted

Unter Linux beendet der Befehl killall Prozesse. (killall httpd). Unter Solaris jedoch killt der Befehl jeden aktiven Prozess.
Als Root User beendete ich jeden Prozess – und dies war unsere Haupt Oracle DB Box:

No. 03: Zerstörte named.conf

Ich wollte eigentlich nur eine neue Zone zur /var/named/chroot/etc/named.conf Datei hinzufügen, aber es endete anderst:

No. 04: Zerstörten von Arbeits Backups mit Tar und Rsync (Private Backups)

Ich hatte nur eine Backup Kopie meines OT Projektes gemacht und wollte eigentlich nur ein Verzeichnis finden, das functions hies. Es endete damit das ich sämtliche Sicherungen gelöscht habe… (Info: -c switch anstatt von -x):

Ich hatte kein Backup…. Ähnlich lief es als ich einmal den rsync Befehl ausgeführt habe, und alle neuen Dateien durch Überschreiben aus Backup-Sets gelöscht wurden (heutzutage verwende ich rsnapshot)

Und wieder einmal hatte ich kein Backup

No. 05: Löschen des Apache Document-Root Verzeichnis

Ich hatte Sym-Links für mein WebServer Root Verzeichnis „docroot“ (/home/httpd/http was symlinked to /www). Habe wohl das Symlink Problem vergessen.Um Speicherplatz zu sparen lies ich

im http Verzeichnis laufen. Glücklicherweis hatte ich diesmal ein Backup

 

No. 06: Dumme Änderung des Hostnamen & getriggerter falscher Alarm

Fälschlicher Weise änderte ich den hostnamen (Ich wollte eigentlich nur den aktuellen hostname auslesen) für einen unserer Cluster Knoten. Innerhalb von Minuten erhielt ich eine Alarm Nachrift per email & sms.

No. 07: Internet Interface beendet…

Ich wollte eigentlich das VPN Interface eth0 herunterfahren, aber es endete damit dass ich eth1 beendete, wärend ich mit SSH eingeloggt war:

No. 08: Von der Firewall Ausgesperrt

Ich machte Änderungen an der sshd_config Datei und änderte den ssh port von 22 auf 1022, und habe dabei wohl vergessen die Firewall Regeln zu updaten. Nach einem kurzen Kernel update rebootete ich. Tja dann musste ich wohl beim Provider anrufen und die Firewall Einstellungen vor Ort resetten lassen. (Nun verwende ich ein firewall Reset Skript um ein „Aussperren“ zu vermeiden)

 

No. 09: Eintippen eines Linux Befehls in eine falsche Konsolen Box

Eigentlich wollte ich mein Lokales Debian Desktop System herunterfahren, allerdings gab ich „halt“ im falschen Konsolenfenster ein und beendete den Remote Server (Ich war per ssh in der Remote Box eingeloggt…):

No. 10: Falscher CNAME DNS Entry

Ich erstellte einen Falschen DNS CNAME Eintrag in der example.com Zonen Datei. Das Ergebnis daraus:
Ein Paar Besucher wanderten nach /dev/null:

 

Schlusswort:

Jeder macht mal Fehler, aber nur die weisen lernen aus Ihren Fehlern — Winston Churchill.

Von allen diesen Fehlern habe ich gelernt:

  1. Backup = ( Full + Removable tapes (or media) + Offline + Offsite + Tested )
  2. Die klare erste Wahl zur Sicherung aller Daten eines Linux-Dateisysteme ist Dump, das einzige Tool, das garantiert unter allen Bedingungen wiederherstellt.
  3. Verwenden Sie niemals rsync mit einzelnen Backup-Verzeichnis. Erstellen Sie einen Snapshot mit rsync oder rsnapshots.
  4. Benutze CSV um Konfigurationsdateinen aufzubewahren.
  5. Lesen und warten bevor man die [Enter] Taste erneut drückt.
  6. Verwenden Sie Ihre gut getestet Perl / Shell-Skripten und Open-Source-Konfigurations-Management-Software wie puppet, Cfengine oder Chef um alle Server zu konfigurieren. Dies gilt auch für alltägliche arbeiten, wie das Erstellen der Benutzer und so weiter.
Meine Top-10 Fehler mit Linux Befehlen

Jemand der nie einen Fehler gemacht hat, hat nie etwas neues ausprobiert. — Albert Einstein.

Hier sind ein paar der gravierensten Fehler die ich am Unix Promt gemacht habe.
Einige der Fehler kosten mich eine längere Downtime des Server. Viele der Fehler sind aus frühen Linux Zeiten.

No. 01: Befehl – userdel

Die Datei /etc/deluser.conf war zum löschen des home Verzeichnisses und des Mail Spool des Users konfiguriert.
Eigentlich wollte ich nur den User Account löschen und am Ende löschte ich alles (Info: -r war via deluser.conf aktiviert):

userdel foo

No. 02: Solaris Box Rebooted

Unter Linux beendet der Befehl killall Prozesse. (killall httpd). Unter Solaris jedoch killt der Befehl jeden aktiven Prozess.
Als Root User beendete ich jeden Prozess – und dies war unsere Haupt Oracle DB Box:

killall process-name

No. 03: Zerstörte named.conf

Ich wollte eigentlich nur eine neue Zone zur /var/named/chroot/etc/named.conf Datei hinzufügen, aber es endete anderst:

./mkzone example.com > /var/named/chroot/etc/named.conf

No. 04: Zerstörten von Arbeits Backups mit Tar und Rsync (Private Backups)

Ich hatte nur eine Backup Kopie meines OT Projektes gemacht und wollte eigentlich nur ein Verzeichnis finden, das functions hies. Es endete damit das ich sämtliche Sicherungen gelöscht habe… (Info: -c switch anstatt von -x):

cd /mnt/bacupusbharddisk
tar -zcvf project.tar.gz functions

Ich hatte kein Backup…. Ähnlich lief es als ich einmal den rsync Befehl ausgeführt habe, und alle neuen Dateien durch Überschreiben aus Backup-Sets gelöscht wurden (heutzutage verwende ich rsnapshot)

rsync -av -delete /dest /src

Und wieder einmal hatte ich kein Backup

No. 05: Löschen des Apache Document-Root Verzeichnis

Ich hatte Sym-Links für mein WebServer Root Verzeichnis „docroot“ (/home/httpd/http was symlinked to /www). Habe wohl das Symlink Problem vergessen.Um Speicherplatz zu sparen lies ich

rm -rf

im http Verzeichnis laufen. Glücklicherweis hatte ich diesmal ein Backup

No. 06: Dumme Änderung des Hostnamen & getriggerter falscher Alarm

Fälschlicher Weise änderte ich den hostnamen (Ich wollte eigentlich nur den aktuellen hostname auslesen) für einen unserer Cluster Knoten. Innerhalb von Minuten erhielt ich eine Alarm Nachrift per email & sms.

hostname foo.example.com

No. 07: Internet Interface beendet…

Ich wollte eigentlich das VPN Interface eth0 herunterfahren, aber es endete damit dass ich eth1 beendete, wärend ich mit SSH eingeloggt war:

ifconfig eth1 down

No. 08: Von der Firewall Ausgesperrt

Ich machte Änderungen an der sshd_config Datei und änderte den ssh port von 22 auf 1022, und habe dabei wohl vergessen die Firewall Regeln zu updaten. Nach einem kurzen Kernel update rebootete ich. Tja dann musste ich wohl beim Provider anrufen und die Firewall Einstellungen vor Ort resetten lassen. (Nun verwende ich ein firewall Reset Skript um ein „Aussperren“ zu vermeiden)

No. 09: Eintippen eines Linux Befehls in eine falsche Konsolen Box

Eigentlich wollte ich mein Lokales Debian Desktop System herunterfahren, allerdings gab ich „halt“ im falschen Konsolenfenster ein und beendete den Remote Server (Ich war per ssh in der Remote Box eingeloggt…):

halt
service httpd stop

No. 10: Falscher CNAME DNS Entry

Ich erstellte einen Falschen DNS CNAME Eintrag in der example.com Zonen Datei. Das Ergebnis daraus:
Ein Paar Besucher wanderten nach /dev/null:

echo ‚foo 86400 IN CNAME lb0.example.com‘ >> example.com && rndc reload

Schlusswort:

Jeder macht mal Fehler, aber nur die weisen lernen aus Ihren Fehlern — Winston Churchill.

Von allen diesen Fehlern habe ich gelernt:

Backup = ( Full + Removable tapes (or media) + Offline + Offsite + Tested )

Die klare erste Wahl zur Sicherung aller Daten eines Linux-Dateisysteme ist Dump, das einzige Tool, das garantiert unter allen Bedingungen wiederherstellt.

Verwenden Sie niemals rsync mit einzelnen Backup-Verzeichnis. Erstellen Sie einen Snapshot mit rsync oder rsnapshots.

Benutze CSV um Konfigurationsdateinen aufzubewahren.

Lesen und warten bevor man die [Enter] Taste erneut drückt.

Verwenden Sie Ihre gut getestet Perl / Shell-Skripten und Open-Source-Konfigurations-Management-Software wie puppet, Cfengine oder Chef um alle Server zu konfigurieren. Dies gilt auch für alltägliche arbeiten, wie das Erstellen der Benutzer und so weiter.