»Streng Dich bloß an, auch in den Details.« Wladimir Nabokov (1899–1977), russischer Autor
21 Kontrolle und Monitoring
| Was Sie in diesem Kapitel erwartet |
|
Wenn Sie einen Server und/oder ein eigenes Netzwerk betreiben, kommen Sie nicht umhin, dieses effektiv zu überwachen. Wie Sie dies leicht bewerkstelligen können, soll dieses Kapitel zeigen. Ich gehe hierbei nach einigen Grundlagen speziell auf die Software Nagios ein, mit der Sie eine vorbildliche Kontrolle über Ihr gesamtes Netzwerk erlangen. Da Sie wahrscheinlich nicht ständig vor Ihrem Server sitzen können oder wollen, gehe ich im letzten Abschnitt auf das Virtual Private Networking (VPN) ein. |
| Benötigtes Vorwissen |
|
Sie sollten Kenntnisse im grundlegenden Umgang mit der Shell haben. |
21.1 Zeitgesteuerte Befehle 

Wenn Sie regemäßig zeitgesteuerte Aufgaben ausführen möchten, dann kennen Sie sicherlich den Befehl cron. Bei einmaligen Aufgaben eignet sich allerdings at wesentlich besser. Mit dem Programm können Sie das System anweisen, bestimmte Aufgaben zu vorher definierten Zeiten auszuführen. So können Sie große Kopiervorgänge (beispielsweise ein Backup) auf die Nachtstunden verlegen.
Die Syntax von at bedarf allerdings einiger Erklärungen. Sie definieren eine Aktion, indem Sie zuerst at verbunden mit dem gewünschten Zeitpunkt starten:
at 23:00
at startet eine eigene Eingabeaufforderung mit einem vorangestelltem at>. In dieser Umgebung geben Sie die Befehle ein, die ausgeführt werden sollen, beispielsweise:
shutdown -h now
Dieser Befehl sorgt zu einem vorher festgelegten Zeitpunkt dafür, dass das Betriebssystem heruntergefahren wird. Dieser Befehl muss als Root ausgeführt werden, also müssen Sie der at-Umgebung ein Sudo voranstellen.
Mit atq verschaffen Sie sich einen Überblick über geplante Aktionen. Diese werden hierbei durchnummeriert, damit Sie mithilfe von atrm ''Prozessnummer'' einzelne geplante Aktionen wieder löschen können.
| Einen Zeit-Server nutzen |
|
Für zeitgesteuerte Befehle oder das sinnvolle Auswerten von Logfiles ist die korrekte Uhrzeit des Systems entscheidend. Um dies zu gewährleisten, lassen Sie Ihre Zeit mit einem der vielen Zeit-Server im Internet abgleichen. Dazu installieren Sie ntp und konfigurieren diesen Dienst entsprechend: |
| sudo apt-get install ntp |
|
Die Konfiguration befindet sich in der Datei /etc/ntp.conf. Fügen Sie aus Gründen der Redundanz noch einen zweiten Zeit-Server hinzu: |
| server ntp.ubuntu.com de.pool.ntp.org |
|
Weitere Server finden Sie unter www.pool.ntp.org/. Nach der Konfigurationsänderung müssen Sie den Dienst noch einmal neu starten |
| sudo /etc/init.d/ntp restart |
|
und gleichen dann regelmäßig die Zeit mit den Servern im Internet ab. |
Ebenso können Sie auch zeitgesteuerte Aktionen planen. Die Zeitangaben, mit denen Sie at starten, beziehen sich immer auf den aktuellen Tag. Wenn Sie also abends eine Aufgabe planen, die um zwei Uhr morgens starten soll, dann lautet der korrekte Befehl
at 02:00 tomorrow
oder
at 02:00 + 1 day
Außer Tagen kennt der Befehl auch Wochen, wobei Sie nicht vergessen sollten, dass Ihr Rechner dann bis zum Zeitpunkt der Ausführung des Befehls permanent eingeschaltet sein muss.
| Faul sein mit einem Alias |
|
Ein Alias bietet (wie der Name schon sagt) eine Möglichkeit, vorhandene Befehle durch neue zu ersetzen. Der Sinn erschließt sich einem sofort, wenn man oftmals einen längeren Befehl eintippen muss, z. B. |
| ls -laFh |
|
Hier ist es natürlich sehr bequem, dies durch einen kürzeren Befehl, z. B. 13 zu ersetzen. Die Gefahr des Vertippens ist somit auf ein Minimum reduziert. Sie erstellen einen solchen Alias mit dem folgenden Befehl: |
| alias 13='ls -laFh' |
|
Sie können diesen Befehl verändern, wenn Sie den obigen Befehl wiederholen, also sozusagen den Befehl überschreiben. Wenn Sie einen alias gänzlich löschen möchten, dann benutzen Sie den Befehl unalias: unalias 13. Eine Übersicht über alle derzeit vorhandenen alias-Befehle erhalten Sie, wenn Sie alias im Terminal eingeben. |
Benutzerdefinierte Cron-Jobs
Wie Sie bereits wissen, können Sie mit den Befehlen cron und at zu bestimmten Terminen Befehle ausführen. Die Tabelle für die wiederkehrende Ausführung von Befehlen kann mit
crontab -e
bearbeitet werden. Eine crontab-Tabelle sieht beispielsweise so aus:
# Verwende /bin/sh zur Ausführung SHELL=/bin/sh # Standardausgabe wird an 'marcus' geschickt. MAILTO=marcus # Min Stunde TagDesMonats Monat TagDerWoche Befehl (Komma wird 'und') # starte um 00:05, jeden Tag 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # starte unm 14:15 am Monatsersten – Ausgabe per E-Mail an Paul 15 14 1 * * $HOME/bin/monthly # starte um 22:00 an Werktagen (1-5), schicke E-Mail an Marcus. % für Zeilenumbruch, letztes % für cc: 0 22 * * 1-5 mail -s ''Es ist 10 Uhr'' 23 */2 1 2 * echo ''Startet 23 Minuten nach 0 Uhr, 2 Uhr, 4 Uhr ..., am 1. Feb.'' 5 4 * * sun echo ''Startet um 04:05 jeden Sonntag'' # Startet um 03:40 an jedem ersten Montag des Monats 40 3 1-7 * * [ ''$(date +%a)'' == ''Mon'' ] && command -args
| Befehl zur einmaligen Ausführung terminieren |
|
Um einen Befehl zur einmaligen Ausführung zu terminieren verwenden Sie den Befehl at: |
| echo '<command -args>'| at 3:40 monday |
|
Dieser Befehl startet einen festgelegten Prozess am Montag um 3:40 Uhr. |




Jetzt bestellen







