Clusterssh

Viele Admins stehen häufig vor der Aufgabe einen Befehl auf vielen Maschinen gleichzeitig auszuführen. Eine Möglichkeit das zu tun ist mit dem Tool clusterssh. Es lässt sich meist direkt aus den Paketquellen installieren:

sudo apt-get install clusterssh

Anschließend kann man sich mit dem folgenden Befehl auf mehreren Servern verbinden und dort gleichzeitig Befehle ausführen:

cssh server1 user@server2 server3

In der Datei ~/.clusterssh/config kann man sich verschiedene Cluster definieren. Dafür wird eine Zeile benötigt die sagt was Cluster sind, und dann jeweils eine weitere Zeile die die Cluster definiert. Beispiel:

clusters = physical webserver
physical = phys1 phys2 user@phys3
webserver = user1@web01 user2@web02 user3@web03, user1@web04 web05

Anschließend kann man sich einfach mit dem folgenden Befehl mit allen Webservern verbinden:

cssh webserver

Häufig auszuführende Kommandos kann man sich auch im Menü hinterlegen. Dafür zuständig ist die Datei ~/.csshrc_send_menu. Sie ist im XML-Format aufgebaut und kann zum Beispiel so aussehen:

<?xml version="1.0"?>
<send_menu>
  <menu title="htop">
    <command>htop%n</command>
  </menu>
  <menu title="autoremove">
    <command>sudo apt-get -y autoremove%n</command>
  </menu>
  <menu title="updates">
          <command>apt-get update &amp;&amp; apt-get dist-upgrade &amp;&amp; exit%n</command>
  </menu>
  <menu title="firewall restart">
          <command>sudo /root/skripte/firewall.sh%n</command>
  </menu>
</send_menu>

Damit das ganze funktioniert wird XML::Simple benötigt:

sudo apt-get install libxml-simple-perl

Oft benutze ich persönlich auf den Shortcut Alt+r zum Fenster neu anordnen. Ruft man auf allen Servern einen Befehl auf und schließt die Fenster auf denen der Befehl erfolgreich bearbeitet wurde, dann hat man irgendwann einen Fleckenteppich auf dem Bildschirm. Mit Alt+r wird der wieder neu angeordnet.

Update 01.02.2016: Danke @Aiko für den Kommentar, ich habe das oben in das Beispiel mit eingepflegt.

Snippets: 07.01.2016

  • UIDs nochmal hervorgekramt: Reserviert ist per Definition nur UID=0 für root. Quasi überall ist UID=65534 der Nutzer nobody. Es hat sich etabliert, dass die UIDs 1-99 von Systembenutzern für Dienste ohne Login belegt ist. Verschiedene Distributionen starten mit lokalen Benutzeraccounts an verschiedenen Stellen, RedHat zum Beispiel bei UID=500, Debian erst bei UID=1000.
  • In Gnome 3 hatte ich das Problem, dass in „Dateien“ die Entf-Taste nicht ging um Dateien und Ordner in den Papierkorb zu verschieben. Ich musste immer markieren, rechtsklick mit der Maus und dann sagen „In den Papierkorb verschieben“. Lösung ist die .config/nautilus/accels zu öffnen und dort die folgende Zeile suchen:
    ; (gtk_accel_path "/DirViewActions/Trash" "Delete")

    einkommentieren und das <Primary> löschen so dass sie so aussieht:

    (gtk_accel_path "/DirViewActions/Trash" "Delete")
  • Ich suche oft noch mit aptitude search foo* | grep „^i“. Schneller ist allerdings dpkg -l foo* | grep ii und die Pipe + grep kann ich mir sparen mit dpkg –get-selections foo*

Snippets: 06.01.2016

  • Der Befehl update-alternatives –config editor den ich von Debian basierten Systemen gewohnt bin funktioniert auf SLES Systemen nicht. Hier muss manuell ein EDITOR=/usr/bin/vim oder VISUAL=/usr/bin/vim in die ~/.bashrc oder wenn es systemweit sein soll in die /etc/profile.local eingetragen werden.
  • Ubuntu Linux von 08.04 auf 10.04 auf 12.04 auf 14.04 … irgendwann ist der Bootloader defekt 8-)

Snippets: 05.01.2016

  • Wenn logrotate Emails schickt mit dem Inhalt
    /etc/cron.daily/logrotate: 
    gzip: stdin: file size changed while zipping

    dann ist die Vorgehensweise um das Problem zu lösen zuerst in dem Cronskript ein –verbose an den Logcheck Aufruf mit anzuhängen um die betreffende Datei zu identifizieren und anschließend in der dazugehörigen Konfigurationsdatei ein delaycompress mit einzufügen. (via)

  • Gestern bereits gelernt allerdings vergessen aufzuschreiben: Die App Castro für Android. Sie ließt Systeminformationen aus. Spannend fand ich, dass es in meinem Smartphone auch einen Druck-Sensor dessen Wert in hPa ausgegeben werden. Zum Vergleich für Göttingen habe auf der Tagesanzeige der Graphen von Goetemp in die Tabelle den Luftdruck einfach mal mit aufgenommen und finde es witzig meinen Handywert mit dem gemessenen Wert zu vergleichen.
  • In Apache 2.4 wird aus
    Order allow,deny
    Allow from 127.0.0.1 1.2.3.4

    ein

    Require local
    Require ip 1.2.3.4
  • In Apache 2.4 wird der Ordner /etc/apache2/conf.d/ nicht mehr genutzt, sondern es ist jetzt /etc/apache2/conf-enabled/