Der Startmechanismus für fast alle modernen Linux Distributionen heisst systemd.
Dies bringt nicht nur Vorteile im starten der Prozesse, sondern lässt sich auch gut Monitoren.
Continue reading icinga/nagios: systemd überwachen
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ührenbash history über mehrere shells merken
Wenn man unter Linux mit der bash shell mehrere sessions (z.B. mit tmux oder mehrere puty fenster) offen hat, wird immer nur die history des letzten Kommandos gespeichert. Dies kann ziemlich ärgerlich sein.
Temperatur Monitoring mit dem Raspberry PI
Angeregt vom golem.de Projekt: Wie warm ist es in euren Büros habe ich mir erstmals einen Raspberry PI bestellt.
Mittels einiger tools lassen sich auch selbst beeindruckende Statistiken anlegen!
at jobs für einmalige Aufgaben
Cronjobs, um wiederkehrende Aufgaben zu automatisieren kennt jeder linux admin. Doch wie ist es, wenn man nur einmal etwas automatisch ausführen will? – Dafür ist das Kommando at geeignet.
Continue reading at jobs für einmalige Aufgaben
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
RHEL/CentOS: Pakete downgraden
Es ist zwar selten, doch manchmal kommt es vor, dass nach dem Upgrade eines Pakets das Programm nicht mehr richtig funktioniert. Mit einem „downgrade“ kann man das Problem dann (zumindest temporär) lösen.
Continue reading RHEL/CentOS: Pakete downgraden