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

RedHat: Aktuelles SAMBA upgrade macht Domain Controller (PDC) kaputt

Gestern hatte ich, ohne böses zu ahnen ein yum upgrade gemacht, wo die SAMBA packages aufgrund einer Sicherheitslücke auf Version 3.6.23-30 aktualisiert wurden. Am nächsten Tag dann der Schock: Ich konnte mich von meiner Windows Workstation nicht mehr beim Domain-Controller anmelden und bekam in Windows die Meldung:

The trust relationship between this workstation and the primary domain failed

Das smbd.log sagte:

rpc_server/netlogon/srv_netlog_nt.c:976(_netr_ServerAuthenticate3)
 _netr_ServerAuthenticate3: netlogon_creds_server_check failed. Rejecting auth request from client MEIN-PC machine account MEIN-PC$

Als ich auch nach einigem suchen keien Lösung fand, sah ich mich gezwungen temporär auf die letzte SAMBA Version zu downgraden, was bei RedHat zum Glück sehr einfach ist. 😉

Nun hoffe ich, dass der Fehler möglichst bald behoben wird…

Referenzen