CPU Last unter Linux monitoren – sar

Die CPU-Last lässt sich unter Linux ganz einfach mit dem Befehl top ermitteln. Hier erfährt man die gesamte CPU-Last, aber auch den CPU Verbrauch einzelner Prozesse.

Wenn man die gesamte CPU-Auslastung in bestimmten Zeitintervallen ermitteln möchte, eignet sich der Befehl sar besser.

Um den Befehl sar benutzen zu können, muss das Programmpaket sysstat installiert sein.

Der Syntax, um mit dem sar-Befehl die CPU-Last zu monitoren, lautet:

sar -u 5 100

5 gibt das Intervall in Sekunden an, in dem die CPU-Last ermittelt werden soll.

100 gibt die Gesamtanzahl an, wie oft die CPU-Last ermittelt werden soll.

Die Ausgabe sieht dann folgendermaßen aus:

14:30:08 CPU %user %nice %system %iowait %idle
14:31:08 all 16.87 0.00 3.41 5.02 74.70
14:31:13 all 31.12 0.00 9.44 9.64 49.80
14:31:18 all 23.85 0.00 6.81 2.61 66.73
—— snip —-
Average: all 5.72 0.00 1.14 0.58 92.56

Unter Debian befindet sich das Programm sar im Paket sysstat.

 apt-get install sysstat

 

Die Windows Eingabeaufforderung per Eintrag im Explorer-Kontextmenü in einem bestimmten Ordner öffnen

Obwohl dies an diversen Stellen im Netz zu finden ist, hier noch einmal, weil ich jedes Mal Google bemühen muss.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\OpenNew]
@ = "Eingabeaufforderung"
[HKEY_CLASSES_ROOT\Directory\shell\OpenNew\Command]
@="cmd.exe /k cd %1"

Alles in eine Textdatei mit der Endung .reg einfügen, abspeichern und ausführen. Und schon hat man dem Kontextmenü des Explorers einen CMDHere Eintrag hinzugefügt. Ab sofort kann man mit diesem Eintrag die Windows Eingabeaufforderung (Kontextmenüeintrag: Eingabeaufforderung) in einem bestimmten Verzeichnis öffnen.

Wer es genauer wissen will, kann sich folgenden Artikel in der KnowledgeBase von Microsoft anschauen:
How to start a command prompt in a folder in Windows Server 2003, Windows XP, and Windows 2000

Aktivieren und Deaktivieren von Apache2 Modulen – a2enmod – a2dismod

Nachdem ich schon etliche Male die Apache Konfigurationsdatei /etc/sysconfig/apache2 bei Suse von Hand bearbeitet hatte, um Apache2 Module zu aktivieren, ist mir letztens ein Befehl oder, besser gesagt, zwei Befehle untergekommen, die das Ganze automatisieren.

Dies sind a2enmod um Apache Module zu aktivieren

und

a2dismod um Apache Module wieder zu deaktivieren.

Der Syntax ist denkbar einfach:

a2enmod MODULNAME aktiviert das Apache2 Modul MODULNAME

a2dismod MODULNAME deaktiviert das Apache2 Modul MODULNAME

Weiterhin listet der Befehl a2enmod -l alle aktivierten Apache2 Module auf.

Beispiel:

a2enmod ssl aktiviert das ssl Modul.

a2dismod ssl deaktiviert das ssl Modul.

Nachtrag 06/2011:

Apache Modulhandling unter Debian 6

a2enmod -l funktioniert unter Debian nicht. Eine Liste mit den aktivierten Apache modulen erhält man mit:
ls -l /etc/apache2/mods-enabled/

Eine Liste mit den zur Verfügung stehenden Modulen erhält man mit:
ls -l /etc/apache2/mods-available/

Eine weitere Möglichkeit sich alle geladenen Module anzuzeigen ist der Befehl
apachectl -M
(-M  Dump a list of loaded Static and Shared Modules.)

apachectl -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 ....
Syntax OK

Weitere Infos: Apache Modulverwaltung unter Debian

Windowsfreigaben unter Linux mounten

Ich habe heute ein wenig herumsuchen müssen, um eine Windowsfreigabe unter Linux zu mounten. Bisher hatte ich immer den umgekehrten Fall – ein Linuxverzeichnis sollte mittels Samba unter Windows eingebunden werden. Um eine Windowsfreigabe unter Linux zu mounten, habe im Netz viele Treffer mit dem Befehl smbmount gefunden. Dieser funktionierte in meiner OpenSuse 10.3 Installation leider nicht mehr.

Letztendlich führte unten stehender Befehl zum Erfolg. Mit dem mount Befehl wird einfach ein cifs Dateisystem gemounted.

USERNAME und PASSWORT sind die Kontoinformationen für den Zugriff auf die Windowsfreigabe. //xxx.xxx.xxx.xxx/share. /winshare ist der mountpoint in Linux, mit dem man später auf die Windowsfreigabe zugreifen kann.
xxx.xxx.xxx.xxx ist die IP Adresse des Windowsrechners der die Freigabe enthält.

mount -t cifs -o username=USER,password=PASSWORD //xxx.xxx.xxx.xxx/sharename /winshare

Damit die Windowsfreigabe bei jedem Reboot automatisch eingebunden wird, muss folgende Zeile in die Datei /etc/fstab eingefügt werden:

//xxx.xxx.xxx.xxx/sharename /winshare cifs username=USER,password=PASSWORT 0 0

Damit das Ganze funktioniert, muss natürlich der Samba-Client installiert sein. Dies kann man unter openSUSE mit YAST erledigen. Am schnellsten geht es mit der Console:

zypper in samba-client

Synchronisation von einem Verzeichnis auf einem Remoteserver mit einem Verzeichnis auf dem lokalen Server mittels rsync

Rsync ist ein Programm zum Spiegeln von Verzeichnissen. Dabei kopiert Rsync die Daten inkrementell, d.h. es werden nur veränderte Daten übertragen.

Der Befehl

rsync -v -a –delete -e ssh user2@remoteserver.net:/home/user2/daten/ /home/user1/backup/

gleicht das Verzeichnis /home/user2/daten/ auf dem entfernten Server mit dem Verzeichnis /home/user1/backup/ auf dem lokalen Server ab.

Die Optionen bedeuten im einzelnen:

-v = verbose – Erweiterte Ausgabe, nützlich bei der Fehlersuche
-a = Kombiniert mehrere andere Optionen. Sorgt unter anderem dafür, dass Unterverzeichnisse rekursiv mitkopiert werden, symbolische Links kopiert werden, Benutzer- und Gruppenrechte sowie Zeiten erhalten bleiben.

–delete sorgt dafür, dass Dateien auf dem Ziel, die auf der Quelle nicht mehr existieren, gelöscht werden (Mirroring). Vorsicht bei der Verwendung dieser Option.

-e ssh sorgt dafür, dass die rsync Verbindung durch eine verschlüsselte SSH Verbindung getunnelt wird.

SSH Login ohne Passworteingabe mit SSH Key Authentication

Mit dem Befehl

ssh-keygen -t rsa

wird ein Schlüsselpaar aus öffentlichem und privatem Schlüssel generiert. Die beiden Dateien mit den Schlüsseln werden im Ordner ~/.ssh erstellt.
~/.ssh/id_rsa Privater ServerKey
~/.ssh/id_rsa.pub Public Key

Nun muss noch der eigene Public Key auf dem Remote Server installiert werden. Der Befehl

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remoteserver

hängt den eigenen Public Key an die Datei ~/.ssh/authorized_keys des Remote Servers.

Ob das Ganze erfolgreich war, kann man nun mit dem Befehl

ssh user@remoteserver

testen. Wenn bei der Schlüsselgenerierung keine Passphrase angegeben wurde, sollte die ssh-Verbindung nun automatisch aufgebaut werden. Dies ist unter anderem sehr nützlich, wenn eine SSH Verbindung per Script automatisch aufgebaut werden soll.

Darstellung von Umlauten und Linien bei einer SSH Verbindung mit Putty zu einer openSuse Installation.

Problem: Nach dem Umstieg von Suse Linux 9.3 auf openSUSE Linux 10.1 traten bei einer SSH Verbindung mit Putty Fehler bei der Darstellung von Sonderzeichen und Linien auf. Ein Umstellen des Zeichensatzes auf UTF-8 in Yast und bei Putty behob dieses Problem nur zum Teil. Entweder wurden die Linien richtig dargestellt, aber die deutschen Umlaute nicht, oder es wurden die Umlaute korrekt angezeigt, aber die Linien nicht.

Lösung: Ein Hinweis in der openSUSE-de Maillingliste, half das Problem zu beheben. Wichtig ist folgende Einstellung unter Putty: Unter CONNECTION -> DATA -> TERMINAL-TYPE STRING muss der Wert XTERM mit dem Wert “linux” (Achtung: Diese Einstellung ist Case Sensitive. Das heißt “linux” in Kleinbuchstaben schreiben) ersetzt werden. Weiterhin wurde bei Putty der Zeichensatz unter WINDOW -> TRANSLATION auf UTF-8 geändert. Nun werden alle Umlaute und Linien, bei einer SSH Verbindung mit Putty, wieder korrekt dargestellt.

Fehlerhafte Umlautdarstellung bei Putty

Fehlerhafte Umlautdarstellung

Fehlerhafte Liniendarstellung bei Putty

Fehlerhafte Liniendarstellung

Korrekte Darstellung

Korrekte Darstellung

Fehlender vertikaler Abstand zwischen Bildern beim Internet Explorer 7

Problem: Bei der Wartung unserer Typo3-Webseite ist bei der Qualitätskontrolle im IE 7 aufgefallen, dass Bilder, die mit dem Typo3-Seiteninhaltstypen “nur Bilder” oder “Text mit Bild” als Seiteninhalt eingefügt wurden, keinen vertikalen Abstand mehr hatten. Firefox, Opera und der Internet Explorer 6 zeigten den Seiteninhalt korrekt an.

Der vertikale Abstand zwischen den Bildreihen wurde im Typo3 Template Constant Editor mit dem Befehl “styles.content.imgtext.rowSpace = 17” auf 17 Pixel gesetzt.
Diese Einstellung wird durch die Extension tx_cssstyledcontent in eine temporäre CSS Datei codiert.

div.csc-textpic div.csc-textpic-imagewrap .csc-textpic-image {
margin-bottom:17px;
}

Anscheinend wird der CSS Befehl margin-bottom:17px; durch einen Fehler im Internet Explorer 7 ignoriert.

Lösung: Durch das Hinzufügen folgender CSS Blocks zu unserer eigenen CSS Datei wurden die vertikalen Abstände im IE 7 korrekt angezeigt. Der Befehl padding-bottom:17px; wird vom Internet Explorer 7 richtig interpretiert. Der vertikale Abstand zwischen den einzelnen Bildern beträgt nun wieder 17 Pixel.

div.csc-textpic div.csc-textpic-imagewrap dl.csc-textpic-image {
padding-bottom:17px;
}

Eine Kontrolle im Firefox zeigte nun aber, dass dort die vertikalen Abstände nun doppelt so groß waren wie vorher. Dies kommt daher, dass der Firefox Browser margin-bottom:17px; und padding-bottom:17px; korrekt anzeigt und somit der Abstand zwischen den Bildern 34 Pixel beträgt. Um dies zu korrigieren, musste die ursprüngliche Einstellung margin-bottom:17px; mit margin-bottom:0px; in unserem eigenen Stylesheet überschrieben werden. Folgender CSS Block zeigt nun die richtigen Bildabstände. Dies wurde im Internet Explorer 7, Internet Explorer 6 und Firefox 2 überprüft.

div.csc-textpic div.csc-textpic-imagewrap dl.csc-textpic-image {
margin-bottom:0px;
padding-bottom:17px;
}

Wem eine bessere Lösung einfällt, der kann sie gerne mailen.

IE6, Firefox: korrekt IE7: fehlender Abstand
IE6, Firefox: korrekt IE7: fehlender Abstand

Suchen und Ersetzen mit VIM

Wer immer nach dem VIM Syntax für Suchen und Ersetzen googlen muss:

:%s/SUCHMUSTER/NEUERTEXT/g

Ersetzt im ganzen Dokument das SUCHMUSTER mit NEUERTEXT.

Hier ein VIM Beispiel für Suchen und Ersetzten in einem Bereich. Es soll in den nächten x Zeilen ein Muster gesucht und ersetzt werden.

:.,+2s/SUCHMUSTER/NEUERTEXT/g

In obigen Beispiel soll ab der aktuellen Zeile . in den folgenden 2 Zeilen +2 gesucht werden.

Eine gute Anleitung zum Thema Suchen und Ersetzen in VIM.