VMware vCenter Server Appliance: nrpe daemon installieren

Die vCenter Server Appliance von VMware ist eine tolle Sache. Noch toller, wenn man diese mittels icinga und dem nrpe daemon Überwachen kann. 😉

Continue reading VMware vCenter Server Appliance: nrpe daemon installieren

Firefox: Häufige Schreibvorgänge verlangsamen das Systemen

Der Firefox Browser besitzt eine Funktion die nach einen Browser-Absturz die offenen Fenster- Tabs automatisch wiederherstellen kann. Das ist extrem nützlich, doch Firefox speichert den Zustand der aktuellen Fenster/Tabs jede Minute (bei SSD-Festplatten sogar alle 15 Sekunden!), was zu immensen Schreibvorgängen und damit nicht nur zu einem Verlangsamen des Browsers, sondern des ganzen Systems führt!
Continue reading Firefox: Häufige Schreibvorgänge verlangsamen das Systemen

Prüfen ob Verzeichnis gemountet ist

Mittels dem Programm Mountpoint kann man ganz einfach herausfinden ob ein Verzeichnis gemountet ist oder nicht.

In einem Script könnte man das wie folgt prüfen:

TEST_DIR="/mnt"
MOUNTPOINT="/bin/mountpoint"
 
$MOUNTPOINT -q "$TEST_DIR"
if [ $? -eq 0 ]; then
  echo "mountpoint exists"
else
  echo "mountpoint does not exist"
fi

Auf Prozess ende warten

Manchmal möchte man in einen Script warten bis ein Prozess geendet hat, denn einige Prozesse können nach dem stoppen noch mehrere Sekunden aktiv bleiben.

Dies geht mit einer einfachen while schleife:

#!/bin/bash
 
while [[ -n "$(pgrep -f 'httpd')" ]]
do
  echo "Process HTTP: $(pgrep -f 'httpd') is still running..."
  sleep 1
done
echo "Process finished"

Nun kann man natürlich auch fuser benutzen, um zu testen ob auch wirklich kein Prozess mehr auf das Filesystem zugreift:

#!/bin/bash
 
WEB_FILESYSTEM="/srv/www/"
 
while [[ -n "$(fuser -m $WEB_FILESYSTEM)" ]]
do
  echo -e "The following processes are still accessing the filesystem: $(fuser -mu $WEB_FILESYSTEM)."
  sleep 1
done
echo "No processes are accessing the filesystem."

Das ganze lässt sich nun noch mit einer OR-Bedingung verknüpfen:

#!/bin/bash
 
WEB_FILESYSTEM="/srv/www/"
 
while [[ -n "$(pgrep -f 'httpd')" || -n "$(fuser -m $WEB_FILESYSTEM)" ]]
do
  echo -e "Process (HTTP: $(pgrep -f 'httpd')) is still running and the following processes are still accessing the filesystem: $(fuser -mu $WEB_FILESYSTEM)."
  sleep 1
done
echo "No processes are running or accessing the filesystem."

Suchen und Ersetzen in IMAP/Maildir Mails

Wenn man die Attachments seiner Mails auf einem IMAP Mailserver extrahiert (detached) hat und später der Pfad auf der lokalen Festplatte ändert, kann man die attachments mit dem Mailclient (z.B. Thunderbird) nicht mehr aus der Mail heraus aufrufen.

Wenn man in der glücklichen Lage ist, dass eine, der Server gehört, kann man jedoch ein suchen&erstzen direkt in den Mails machen:

find .Verzeichnis.Unterverzeichnis/cur/ -type f |xargs grep -l 'X-Mozilla-External-Attachment-URL:' |xargs perl -pi -w -e 's%C:/alter/pfad/%C:/neuer/pfad/%g;'

Falls die Mail Attachments ebenfalls auf einem Linux Server abgelegt sind, kann man sich mit folgendem code eine Liste der files generieren und ggf. auf dem fileserver abgleichen:

find .Verzeichnis.Unterverzeichnis/cur/ -type f |xargs grep 'X-Mozilla-External-Attachment-URL:' |cut -d' ' -f2 |sed -e 's%file:///%%g' | sed -e 's%[Cc]:/%/home/benutzername/%g'

Auf dem fileserver kann man die obige ausgabe dann in eine Datei schrieben (z.B.: mail-attachments.txt), danach lassen sich diejenigen Files anzeigen, welche nicht vorhanden sind:

for file in $(cat mail-attachments.txt); do ls -lah $file > /dev/null; done

vmware vMA: Befehle ohne Passwort ausführen

Der vSphere Management Assistant (vMA) ist eine praktische sache, denn damit sich alle ESX hosts von einer zentralen appliance aus managen. Damit man die appliance auch für Automatisierungen nutzen kann sind einige Kniffe notwendig, damit man befehle an die ESX hosts senden kann ohne ein Passwort eingeben zu müssen.

Continue reading vmware vMA: Befehle ohne Passwort ausführen