Aus Linux-Magazin 02/2007

Aus dem Alltag eines Sysadmin: Incron

U5 / photocase.de

Incron ist kein Ersatz für den guten alten Cron, sondern eine Ergänzung. Während Cron nach einem starren Zeitschema arbeitet, beobachtet Incron Verzeichnisse im Dateisystem und reagiert auf dortige Ereignisse.

Inhalt
72 | Upstart Viel versprechender Ansatz, den lahmen Systemstart zu beschleunigen.

78 | Virtual Iron Management für Hardware-gestützte Virtualisierungslösungen.

82 | LPI-Kompendium, Teil 7 Prüfungsthemen dieses Teils sind der Umgang mit Kernelmodulen und das Kompilieren eines Kernels.

Meine Crontab und ich sind mit den Jahren gemeinsam gewachsen – sie in die Länge, ich in die Breite. Nun wollte ich der alten Dame auch die Möglichkeit einräumen, sich in anderer Richtung zu entwickeln: mit Incron [1]. Die Cron-Ergänzung arbeitet nicht zeit-, sondern ereignisgesteuert, indem sie Verzeichnisse beobachtet und bei plötzlichen Änderungen Kommandos ausführt.

Um mit Incron zu arbeiten, benötige ich einen Kernel ab 2.6.13 mit Inotify-Support und der passenden »inotify.h«-Datei. Üblicherweise liegt sie unter »/usr/include/sys/«, bei einigen Distributionen gibt es zudem eine »inotify-syscalls.h«. Wer mag, ändert im Makefile die Installationspfade, danach reicht »make && make install«. Das Kompilieren beschert mir den Daemon »incrond«, der sich nach dem Start in den Hintergrund verabschiedet, »incrontab« und Manpages.

Pfad, Ereignis, Kommando

Der Aufruf der Incrontab folgt im Kern der Crontab-Syntax: »icrontab -e« öffnet die Tabelle zum Editieren, »icrontab -l« zeigt ihren Inhalt an und »icrontab -r« löscht sie ohne Rückfrage. Jede »icrontab«-Zeile besteht aus drei Einträgen:

Pfad Ereignis Kommando+Parameter

Immer wenn im überwachten »Pfad« ein »Ereignis« passiert, führt Incron »Kommando« aus. Welche Ereignisse es überwachen kann, steht in Tabelle 1. Incron belegt nach einem Ereignis die in Tabelle 2 gelisteten Parameter, die »Kommando« dann für seine Zwecke benutzen darf. Wenn ich die Incrontab ändere, muss ich Incrond das nicht mitteilen, denn er liest die Steuerdatei periodisch ein.

Ein Beispiel: Immer wenn jemand im Verzeichnis »/var/run/daemon/« eine Datei löscht, soll Incrond auch der »/var/log/daemon.log« den Garaus machen. Die passende Zeile in der »incrontab«:

/var/run/daemon IN_DELETE rm /var/log/daemon.log

Fertig. Und die lange Tante Cron kriegt endlich Speck auf die Rippen. (jk)

Tabelle 1:
Erfassbare Ereignisse
Ereignis Beschreibung
IN_ACCESS Lesezugriff  
IN_MODIFY Schreibzugriff  
IN_ATTRIB Metadaten (Inode oder Attribut) geändert  
IN_CLOSE_WRITE Datei war zum Schreiben geöffnet und wurde
geschlossen
 
IN_CLOSE_NOWRITE Datei war nicht zum Schreiben geöffnet und wurde
geschlossen
 
IN_CLOSE »IN_CLOSE_WRITE« oder
»IN_CLOSE_NOWRITE«
IN_OPEN Datei wurde geöffnet
IN_MOVED_FROM Datei wurde aus dem Verzeichnis verschoben  
IN_MOVED_TO Datei wurde ins Verzeichnis verschoben  
IN_MOVED »IN_MOVED_FROM« oder »IN_MOVED_TO«
IN_DELETE Datei wurde gelöscht  
IN_DELETE_SELF Das beobachtete Verzeichnis wurde gelöscht  
IN_ALL_EVENTS Irgendeins der zuvor genannten Ereignisse
Tabelle 2:
Kommando-Parameter
Platzhalter Beschreibung
$@ Liefert den »Pfad«
$# Name der Datei, die das »Ereignis« ausgelöst
hat
$% Zeigt das ausgelöste »Ereignis«
$$ Das Dollarzeichen höchst selbst
Infos
[1] Incron: [http://incron.aiken.cz]
Der Autor
Charly Kühnast administriert Unix-Betriebssysteme im Rechenzentrum Niederrhein in Moers, insbesondere Firewalls und die DMZ (demilitarisierte Zone). In seiner Freizeit lernt er Japanisch, um endlich die Bedienungsanleitung seiner Mikrowelle lesen zu können.

Copyright © 2002 Linux New Media AG

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben