Heinzelmännchen

Es kommt bei mir mit einer gewissen Regelmäßigkeit vor, dass die Festplatte auf einmal anfängt zu arbeiten. Mit top habe ich festgestellt, welche Prozesse da laufen. Unter anderem sind das find und mandb. Was mich dabei irritiert ist, dass root offensichtlich automatische Aktionen ausführt, während ich gar nicht als root eingelogt bin.

Zudem stört mich, dass mitten in der Nacht die Festplatte wegen eines find-Prozesses rödelt (was logisch ist, da etwas gesucht wird). Nun meine Frage: Wo kann ich diese automatischen Prozesse steuern, sprich: Wie kann ich sie ändern bzw. löschen? Haben diese Prozesse einen Sinn?

Dr. Linux: Solche automatischen Prozesse werden durch das Programm crond (oft auch nur cron genannt) ausgeführt.

Dieser Cron-Daemon ist ein Programm, das beim Booten des Systems durch das cron(d)-, manchmal auch cron.init-Initialisierungsskript im Verzeichnis /etc/rc.d/init.d, /etc/init.d oder auch /sbin/init.d gestartet wird. Wenn Sie den Ursprung Ihres Daemons tatsächlich genau herausfinden möchten, geben Sie den Befehl

root# locate cron

auf einer Kommandozeile ein. Sollten Sie zu viele Treffer landen, finden Sie auf einer grafischen Oberfläche an den zur Verfügung stehenden Terminalfenstern meist einen Rollbalken, der die Durchsicht aller Verzeichnisse und Dateien, die Ihnen der Suchbegriff liefert, erleichtert.

Das cron(d)-Programm läuft – wie alle Daemonen – im Hintergrund und überprüft bestimmte Dateien des Systems, ob dort Aufträge hinterlegt sind, die zu festgelegten Zeiten ausgeführt werden sollen. Schauen Sie in Ihr Verzeichnis /etc. Dort finden Sie die /etc/crontab(elle), auch System-crontab genannt, und zumeist folgende Verzeichnisse:

  • cron.daily: Hier sind die ausführbaren Skripte für tägliche Aufgaben hinterlegt.
  • cron.hourly: In diesem Verzeichnis liegen Skripte für Aufgaben, die stündlich abgearbeitet werden sollen.
  • cron.weekly: Skripte wöchentlich durchzuführender Aufgaben werden hier abgelegt.
  • cron.monthly: Ablage für Skripte, die monatlich auszuführende Aufträge enthalten. Die Aufgaben oder Cron-jobs darin werden zu den in der /etc/crontab angegebenen Zeiten ausgeführt. Dabei unterscheidet sich die /etc/crontab eines SuSE-Linux von der einer Red-Hat-Linux-Distribution schon auf den ersten Blick ganz erheblich.

Beispielsweise sieht die /etc/crontab bei SuSE 6.3 in Auszügen so aus:

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons
0 0  * * *     root  rm -f /var/cron/lastrun/cron.daily
0 0  * * 6     root  rm -f /var/cron/lastrun/cron.weekly
0 0  1 * *     root  rm -f /var/cron/lastrun/cron.monthly

… wohingegen die /etc/crontab bei Red Hat folgende Einträge hat:

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Werfen wir einen Blick auf das Format einer /etc/crontab mit all den rätselhaften Sternchen und Ziffern.

Jede Zeile ist in drei Bereiche gegliedert: wann, wer, was. Im "Wann-Bereich" werden jeweils durch Leerzeichen getrennt die Zeitangaben in der Reihenfolge Minute(n), Stunde(n), Tag, Monat, Wochentag gesetzt. Ein * steht für jeden möglichen Wert in diesem Feld.

Erlaubt sind

  • die Minuten 059 sowie *. Ein Eintrag wie 0-59/15 * * * * bewirkt, dass alle 15 Minuten der nachfolgend gesetzte Befehl ausgeführt wird.
  • die Stunden 023 und *. Auch hier können Sie Bereiche angeben: 0 13-18 * * * * hat zur Folge, dass jede volle Stunde zwischen 13 und 18 Uhr der nachfolgende Befehl ausgeführt wird. 0 10,12,16 * * * * hingegen führt den passenden Cronjob zur vollen Stunde um 10, 12 und 16 Uhr aus.
  • die Monatstage 031 und *. 15 12 6,20 * * steht für den 6. und 20. eines jeden Monats um Viertel nach 12.
  • die Monate 112 und * sowie
  • die Wochentage 0-7 und *, wobei der Sonntag sowohl durch die 0 als auch die 7 gekennzeichnet werden kann.

Als aufmerksamer Mensch, der sich mit crontab beschäftigen möchte, haben Sie bemerkt, dass das - zu Beginn der zitierten SuSE-crontab soeben nicht erklärt wurde. Wenn Sie eine andere Distribution benutzen, haben Sie vielleicht schon verzweifelt und ergebnislos in der Ausgabe von man 5 crontab danach gesucht. Kein Wunder, denn auf den meisten Unix- und Linux-Systemen ist dies ein ungültiger Eintrag. In der SuSE-Manpage zu crontab(5) finden Sie jedoch mit

Wenn die UserID des Besitzers 0 ist,
kann er als erstes Zeichen eines
crontab-Eintrags ein  "-" setzen.
cron wird dann im Syslog keine Meldung
über dieses Kommando veranlassen.

auf Seite 3 die Erklärung und noch weitere Einzelheiten, wie Sie die Flexibilität von cron(d)s-Zeiteinträgen für sich nutzen können.

Im "Wer-Bereich" der Systemcrontab steht, durch Leerzeichen vom "Wann-Bereich" getrennt, der Name des Anwenders, in dessen Namen der Cronjob ausgeführt wird.

Wieder durch Leerzeichen abgetrennt, beginnt der "Was-Bereich". Wenn Sie z. B. mit dem Programm fetchnews Ihre News (siehe Kasten "News") auf Ihren lokalen News-Server herunter laden wollen, tragen Sie am besten den vollständigen Pfad zum Befehl ein; auf meinem System ist das /usr/sbin/fetchnews.

News

News sind schriftliche Beiträge, die von den verschiedensten Menschen in Internet- oder Usenet-Newsgruppen gesendet ("gepostet") werden. Die Newsgruppen können Sie sich wie Stammtische vorstellen; an jedem Tisch wird über ein bestimmtes Thema gesprochen und diskutiert, Meinungen und Fragen werden ausgetauscht. Newsgruppen gibt es zu (fast) allem, was Sie sich vorstellen können. Einige deutschsprachige, die sich mit Linux-(nahen) Themen beschäftigen, sind:

  • de.alt.comp.gnome
  • de.alt.comp.kde
  • de.comp.os.unix.linux.hardware
  • de.comp.os.unix.linux.misc
  • de.comp.os.unix.linux.infos

Ein Newsgruppen-Archiv finden Sie z. B. unter http://www.deja.com/usenet/, http://news.cis.dfn.de/ informiert Sie ausführlich über das Usenet und wie man es nutzt. Wenn Ihnen Ihr Provider keine Newsgruppen anbietet, können Sie sich auf dieser Seite auch anmelden. Zum Thema Verhaltensregeln im Usenet möchte ich Ihnen die Seite http://linux01.gwdg.de/~steufel/Zehn-Wege.html ans Herz legen.

Ein fertiger Eintrag in der /etc/crontab, der bewirkt, dass der Benutzer news an den Tagen Montag bis Freitag um 20.00 Uhr News-Beiträge abholt, sieht dann so aus:

0 20 * * 1-5   news  /usr/sbin/fetchnews -vv

Beachten Sie, dass der angeführte Benutzer die Berechtigung haben muss, den ihm zugeordneten Befehl auch auszuführen.

Sollte keine Netzverbindung zum vorgemerkten Zeitpunkt bestehen, schickt cron Ihnen eine Mail:

Date: Sun, 2 Jul 2000 11:00:01 +0200
From: Cron Daemon <root@max.de>
To: root@max.de
Subject: Cron <news@max>  /usr/sbin/fetchnews -vv
1.9.4: verbosity level is 2
Trying to connect to News.CIS.DFN.DE ... failed.

Aber auch eine Erfolgsmeldung wird zugestellt:

Date: Sun, 2 Jul 2000 13:00:03 +0200
From: Cron Daemon <root@max.de>
To: root@max.de
Subject: Cron <news@max>  /usr/sbin/fetchnews -vv
1.9.4: verbosity level is 2
Trying to connect to News.CIS.DFN.DE ... connected.
Getting new newsgroups from News.CIS.DFN.DE
Read server info from /var/spool/news/leaf.node/News.CIS.DFN.DE
de.comp.os.unix.linux.newusers: considering articles 128807-128875
de.comp.os.unix.linux.newusers: 69 articles fetched, 0 killed[...]
Disconnected from News.CIS.DFN.DE.

In jedem Fall können Sie in den ausführbaren Skripten im Verzeichnis /etc/cron.daily nachlesen, welche "automatischen Prozesse" Ihre Festplatte täglich zum "Rödeln" bringen. Die Berechtigung zum Lesen dieser Dateien hat auf den meisten Systemen nur root.

Bei einer Eingabe von

user$ top

auf einer Befehlszeile, während die Cronjobs laufen, können Sie verfolgen, welche Prozesse gestartet und beendet werden. Je nach System und Einstellungen werden Sie einige der folgenden Aktionen beobachten:

  • mandb erneuert die Manpage-Datenbank.
  • Das Verzeichnis /tmp wird entleert.
  • updatedb aktualisiert die Datenbank, auf die das Suchkommando locate zugreift. locate arbeitet ähnlich wie find, nur schneller, weil es auf eine Datenbank zugreift und das System nicht direkt untersucht. Um ein korrektes Ergebnis von Suchanfragen zu erhalten, muss diese Datenbank aktuell sein.
  • Die log(buch)-Dateien werden gepflegt, damit sie nicht ins Unendliche wachsen.

Abhängig vom System und seinen Sicherheitseinstellungen werden die für Sie (vor)konfigurierten Cronjobs vom Benutzer root oder nobody ausgeführt.

Herr der Zeiten

Gibt es keine einfachere Möglichkeit, die Systemcrontab zu editieren?

Dr. Linux: Wenn Sie linuxconf benutzen, haben Sie beim Unterpunkt System/Cron jobs von root die Möglichkeit, neue Aufgaben einzufügen (Abbildung 1). Wählen Sie crond aus der Liste in System/Dienste aus (Abbildung 2, oben), so können Sie den Cron-Daemon auch komplett deaktivieren (Abbildung 2, unten).

Abbildung 1: Cron-jobs für root mit linuxconf einrichten

Letzteres ist – unabhängig von einer bestimmten Distribution – ratsam, wenn Sie Linux auf einem Laptop im Batteriebetrieb betreiben oder während des Brennens von CDs.

Bei SuSE wird selbstverständlich auch Cron mit Yast konfiguriert.

Abbildung 3: Die Einstellungen für Cron zu finden, ist nicht so ganz einfach…
Abbildung 4: So konfigurieren Sie die Skripte in cron.daily mit Yast

Abbildung 4 zeigt, wo Sie die Einstellungen unter SuSE Linux mit yast ändern können: Wählen Sie nach Administration des Systems den Eintrag Konfigurationsdatei verändern (Abbildung 3).

Dort bestimmen Sie, welche Aufgaben die Skripte im Verzeichnis /etc/cron.daily abarbeiten sollen:

  • CRON: Hier legen Sie grundsätzlich fest, ob der Cron-Daemon aktiviert wird oder nicht.
  • MAX_DAYS_FOR_LOG_FILES: Wie lange wollen Sie die automatisch komprimierten log-Dateien archivieren, bevor sie gelöscht werden?
  • MAX_DAYS_IN_TMP: Stellen Sie hier ein, wie lange ungenutzte Dateien in /tmp verbleiben dürfen.
  • MAX_DAYS_FOR_CORE: Wie lange dürfen Corefiles Platz auf der Festplatte belegen, bevor sie gelöscht werden?
  • RPMDB_BACKUP_DIR: Hier teilen Sie dem System mit, wohin die Backups der RPM-Datenbank sollen bzw., ob überhaupt Backups abgelegt werden. Mit MAX_RPMDB_BACKUP bestimmen Sie deren maximale Anzahl.
  • RUN_UPDATEDB: Möchten Sie die Datenbank für locate täglich erneuern, dann tragen Sie hier yes ein.
  • REINIT_MANDB: Ein yes an dieser Stelle bewirkt, dass die Manpage-Datenbank täglich auf den neuesten Stand gebracht wird.

Glossar

Dateisystem

Bevor auf einer Festplatte Nutzdaten abgelegt werden können, werden ein oder mehrere logische Bereiche, Partitionen, definiert und in einer Partitionstabelle festgehalten. Darauf muss ein für das benutzte Betriebssystem passendes Dateisystem eingerichtet werden, in dem dieses Dateien und Verzeichnisse verwaltet. Das am weitesten verbreitete Linux-Dateisystem ist das "Second Extended File System" ext2fs.

Superblock

Beim Einschalten des Rechners wird zunächst der erste Block einer Partition oder Diskette gelesen und ausgewertet. Dieser kann ein Programm zum Laden eines Betriebssystems, einen sogenannten Boot-Loader, enthalten. Deshalb wird dieser Block als Boot-Block bezeichnet. Das eigentliche Dateisystem beginnt mit dem zweiten Block, dies ist der sogenannte Superblock.

Valid-Bit

("valid", dt.: gültig) Im Superblock einer ext2-Partition wird das Valid-Bit gelöscht bzw. auf 0 gesetzt, bevor die Partition gemountet wird. Beim Herunterfahren des Systems werden alle im Hauptspeicher stehenden Dateien gesichert und die Partition aus dem System ausgehängt; das Valid-Bit wird wieder gespeichert bzw. auf 1 gesetzt. Beim nächsten Hochfahren des Systems wird sein Wert wiederum geprüft. Sollte es auf 0 gesetzt sein, bedeutet dies, dass das System nicht ordentlich herunter gefahren wurde, und eine Prüfung des Systems und dessen Reparatur kann z. B. vom Programm e2fsck eingeleitet werden.

Inode

In dieser Datenstruktur werden Informationen wie Größe, Eigentümer, Gruppe und Zugriffsrechte von allen Dateien, Verzeichnissen und Links im System verwaltet. Zusätzlich enthält jeder Inode sieben Zeiger ("Verweise") auf Daten, die zu der Datei, dem Verzeichnis oder dem Link gehören.

News-Server

News-Beiträge werden auf News-Servern gespeichert. Diese tauschen die Beiträge ("Postings") miteinander aus. Auf diese Weise erhält jeder am Usenet beteiligte Server eine Kopie der Postings. News können Sie mit einem News-Client (z. B. auch Netscape) online lesen. Zum Offline-Lesen müssen Sie auf Ihrem System einen lokalen News-Server einrichten (z. B. leafnode).

Corefiles

Wird ein Prozess unerwartet beendet, ohne dass er Zeit "zum Aufräumen" hatte, so hilft Programmierern ein Speicherabzug (engl.: "core dump"), der den tödlichen Moment wiedergibt, beim Aufspüren von Fehlern. Für Nicht-Programmierer verbrauchen diese Dateien nur unnötig Speicherplatz.

RPM-Datenbank

Beim Installieren, Updaten und Deinstallieren von Paketen setzen Distributionen wie SuSE, Red Hat, Caldera oder Mandrake auf diese Datenbank, die detaillierte Informationen zur installierten Software des Systems enthält.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Jobs mit Cron abarbeiten
    So chaotisch Linuxer/innen auch manchmal sein mögen – meistens werkelt unbeachtet im Hintergrund ein Pünktlichkeitsfanatiker namens cron(d) auf ihren Rechnern. Ihn zu nutzen, kann eine Menge langweilige Arbeit ersparen.
  • Cron, At
    Cron- und At-Jobs automatisieren Abläufe auf dem Linux-System, rotieren Logfiles, erstellen automatisch Backups und wecken Sie morgens mit der eigenen MP3-Sammlung – auf Wunsch nur an bestimmten Tagen. Wir zeigen, wie Sie Dinge punktgenau erledigen lassen.
  • Programme zeitgesteuert abarbeiten
    Einmal angeordnet und immer wieder ausgeführt – Linux-User haben verschiedene Möglichkeiten, sich Arbeit durch Automatisierung zu ersparen.
  • Ext2/3-Dateisysteme im laufenden Betrieb reparieren
    Wenn sich eine Datei plötzlich gar nicht mehr ansprechen lässt, ist guter Rat teuer, speziell auf nur per Fernzugriff erreichbaren Root-Servern. Doch auch dieses Abenteuer kann glimpflich ausgehen.
  • Crontabellen per Mausklick
    So nützlich der Crondämon ist, um den Rechner zu festgelegten Zeiten den einen oder anderen Auftrag ausführen zu lassen – das Format, in dem er sich bitten lässt, ist einigermaßen gewöhnungsbedürftig. Hier helfen grafische Crontab-Erstellungsprogramme.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...