10.6 Grundlegende Systemdienste
In diesem Kapitel haben Sie bereits den syslogd als Serverdienst kennengelernt, der grundlegende Aufgaben zur Systemverwaltung übernimmt. Einige weitere wichtige Dienste werden wir Ihnen jetzt vorstellen.
10.6.1 cron
Im Zusammenhang mit logrotate haben wir in diesem Kapitel auch schon von cron gesprochen. cron ist ein Dienst, der regelmäßig Programme laufen lässt. Aber erklären wir das mit einem Beispiel:
$ ls /etc/cron.* /etc/cron.d: . .. /etc/cron.daily: . clean_catman logrotate .. do_mandb tetex /etc/cron.hourly: . .. /etc/cron.monthly: . .. /etc/cron.weekly: . ..
Listing 10.38 Die Konfiguration von cron
Sie sehen in /etc viele Verzeichnisse, die mit cron zu tun haben. Diese sind bis auf /etc/cron.d bereits alle entsprechend ihrer Funktion bezeichnet: Je nach Verzeichnis können Sie Skripte stündlich, täglich, wöchentlich oder monatlich ausführen lassen.
Die Dateien in den Verzeichnissen sind dabei nur einfache Shellskripte, wie das nächste Listing zeigt:
$ cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf
Listing 10.39 logrotate und cron
In diesem Skript wird einfach nur der logrotate-Befehl mit den benötigten Parametern aufgerufen. Auch erlaubt das crontab-Kommando viel präzisere Möglichkeiten, den regelmäßigen Ablauf von Programmen zu steuern. Dieses Kommando im Zusammenhang mit der entsprechenden Konfigurationsdatei /etc/crontab zu beschreiben, würde den Rahmen des Buches sprengen. Bei Bedarf helfen hier wie immer die Manpage sowie zahlreiche Onlinedokumentationen weiter.
Fürs Erste reichen diese Verzeichnisse auch völlig aus, um einfache Abläufe zu regeln. Nehmen Sie sich einfach ein Beispiel, und probieren Sie es aus!
10.6.2 at
Im Gegensatz zu cron, der Jobs regelmäßig ausführt, führt at Jobs nur einmal zu einem bestimmten Zeitpunkt aus.
$ date So 23. Mai 18:43:29 CEST 2021 $ at 18:44 warning: commands will be executed using /bin/sh at> echo "Hallo" > /dev/pts/7 at> <EOT> (Nutzer drückt Strg+D) job 3 at Sun May 23 18:44:00 2021 $ Hallo (Ausgabe erscheint mit Zeilenumbruch) date So 23. Mai 18:44:06 CEST 2021
Listing 10.40 at im Einsatz
Das Beispiel zeigt recht eindrucksvoll, wie einfach at zu bedienen ist. Am besten rufen Sie nämlich at mit der gewünschten Ausführungszeit als Argument auf. Danach startet eine Art Shell, in der Sie die Kommandos eingeben können. Die Eingabe wird durch ein EOF-Zeichen quittiert, das Sie in der bash durch Drücken einer Tastenkombination ((Strg) + (D)) erzeugen.
Damit es besonders anschaulich wird, haben wir uns in diesem Beispiel einfach etwas auf die aktuelle Konsole schreiben lassen. Und siehe da, zwei Minuten später tauchte plötzlich ein ominöses »Hallo« auf, ohne dass wir etwas eingegeben hätten -- at hat also seine Arbeit erledigt.