Installing dependency libraries for Nagios/Icinga

Nagios and also Icinga require that the GD library is present; libgd in turn requires libpng, libjpeg and FreeType to be there. For reference, here’s how those packages have been compiled on „my“ Solaris 10 5/09 Sparc M4000 system using Sun Studio 12.1.

Overview

All the sources are to be compiled using Sun Studio and everything is to be installed underneath /opt/local. Code should, generally, be compiled with compiler flags (CFLAGS) set to a value, which generate the best performance. Ie.:
Weiterlesen

*nix: Eingabeumleitung

Wurde zum Thema Eingabeumleitung bei Linux gefragt.

  • „>“: Damit wird Text, der an die Standardausgabe geschickt wird, in eine Datei geschrieben. Die Datei wird überschrieben.
  • „>>“: Damit wird Text, der an die Standardausgabe geschickt wird, an eine bestehende Datei angehängt. Die Datei wird NICHT überschrieben.
  • „|“: Nimmt Text, der an Standardausgabe anliegt, und liefert ihn an Standardeingabe.
  • „<„: Liest eine Datei und liefert den Text dann an die Standardeingabe. Recht ähnlich zu „|“.

Vlt. durch Beispiele klarer.

$ date > datum.txt

Da wurde das Programm „date“ aufgerufen und dessen Ausgabe (also die akt. Uhrzeit und Datum) wurde in die Datei „datum.txt“ geschrieben. In datum.txt stände also jetzt z.B.:

$ cat datum.txt 
Fre Sep 18 12:14:56 CEST 2009
$ date > datum.txt

Datum wird wieder in „datum.txt“ geschrieben. Der alte Inhalt von „datum.txt“ ist verloren gegangen.

$ cat datum.txt 
Fre Sep 18 12:15:59 CEST 2009
$ date >> datum.txt
$ cat datum.txt 
Fre Sep 18 12:15:59 CEST 2009
Fre Sep 18 12:16:22 CEST 2009

Durch das „>>“ wurde die Ausgabe von „date“ an die bestehende Datei angehängt. Das anschliessende „cat“ zeigte, das die Datei nicht überschrieben wurde.

$ find $HOME/Bilder -type f -exec md5sum {} + | sort

find $HOME/Bilder -type f -exec md5sum {} +„: Suche im Ordner „$HOME/Bilder“ alle Dateien („-type f„) und rufe für jede gefundene Datei „md5sum“ auf („-exec md5sum {} +„). Übergebe dann das Ergebnis der ganzen md5sum Aufrufe an „sort„. Zum übergeben wurde „|“ verwendet.
Das könnte man z.B. machen wollen, um exakt identische Bilder/Dateien zu finden, die aber vlt. unterschiedliche Namen haben.

Beispiel Ausgabe von md5sum:

$ md5sum /Windows/Lotus/NotesR6/kpjpgrdr.dll /Windows/Lotus/NotesR6/kpjpgwrt.dll
4d56b98c8c3bd65e2003e3faa973fe15  /Windows/Lotus/NotesR6/kpjpgrdr.dll
98dfbac7c0e14d6c42241f51fc0eb51f  /Windows/Lotus/NotesR6/kpjpgwrt.dll

Die erste Spalte (also 4d5… und 98d…) sind eine „Quersumme“ über den Dateiinhalt – gleicher Inhalt ergibt gleiche md5 Summe.

$ while read dateiname; do exiv2 -v -r '[%Y-%m-%d--%H.%M.%S] :basename:' rename "$dateiname" ; done < dateiliste.txt

Was wurde da gemacht? Nun, ich selber habe gerne bei meinen Dateinamen von Bildern der Digitalkamera auch noch im Dateinamen selber drin stehen, wann das Bild gemacht wurde. Digitalkameras legen diese Information im sog. EXIF Header ab. „exiv2“ ist ein Tool, das diesen Header auslesen kann und dann Dateien passend umbenennen kann – in diesem Beispiel würde [2009-09-18–12.27.52] vor den Originaldateinamen gestellt.

Ich habe da exiv2 zig mal aufgerufen. Und zwar habe ich vorausgesetzt, das es eine Liste von Dateinamen gibt und diese Liste liegt in der Datei „dateiliste.txt“. Wichtig ist hierbei der Befehl „read„. read liest von der Standardeingabe jeweils eine Zeile und weist das gelesene einer Variable zu (die ich „dateiname“ genannt habe).

$ cat dateiliste.txt | while read dateiname; do exiv2 -v -r '[%Y-%m-%d--%H.%M.%S] :basename:' rename "$dateiname" ; done

Das macht das gleiche wie das Bsp. eins weiter oben, ist aber „Pfui! Bah!“:) , da es ein UUoC (Useless Use of Cat) ist. Der Aufruf von „cat“ ist darum useless, da man die Shell auch direkt anweisen kann, von einer Datei zu lesen (durch die Verwendung von <, siehe Beispiel oben!). Bei der Toolbox for IT gibt’s auch noch ein vlt. eingängieres Bsp. für UUoC.

Solaris 10: Clone einer Non-Global Zone mit ZFS Snapshots

Im „Systemverwaltungshandbuch“ von Sun zu Solaris 10 finden wir zum Stichwort „Klonen einer nicht-globalen Zone im gleichen System“:

  1. Erstellen Sie die neue Zone zone1 durch Klonen von my-zone.
    global# zoneadm -z zone1 clone my-zone

    Das System zeigt Folgendes an:

    Cloning zonepath /export/home/my-zone...

    Wenn sich der zonepath der Quelle in einem ZFS-Pool befindet, beispielsweise zeepool, zeigt das System ab Solaris 10 5/09 Folgendes an:

    Cloning snapshot zeepool/zones/my-zone@SUNWzone1
    Instead of copying, a ZFS clone has been created for this zone.

Hört sich gut an, aber…
Weiterlesen