Incron: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 31: Zeile 31:
  
 
= Job Definition =
 
= Job Definition =
 +
Liste der Aufgaben
 +
incrontab -l
 +
 +
Aufgaben erstellen
 +
incrontab -e
 +
 +
Aufgabenliste neu laden
 +
incrontab -d
 +
 +
Aufgabenliste löschen
 +
incrontab -r
 +
 
Job Anweisungen haben das Format:
 
Job Anweisungen haben das Format:
 
  <Pfad> <Event-Maske> <Befehl>
 
  <Pfad> <Event-Maske> <Befehl>

Version vom 14. November 2011, 13:03 Uhr

incron ist ein auf inotify basierender cron daemon. Anstelle von Zeit werden die Aktionen von Dateisystem-Events ausgelöst.

Installation

apt-get install incron

Benutzer in /etc/incron.allow eintragen.

echo "root" >> /etc/incron.allow

Konfiguration in /etc/incron.conf

# Speicherort für System Aufgaben
system_table_dir = /etc/incron.d

# Speicherort für Benutzer Aufgaben
user_table_dir = /var/spool/incron

# Erlaubte Benutzer
allowed_users = /etc/incron.allow

# verbotene Benutzer
denied_users = /etc/incron.deny

# Verzeichniss für lock Datei
lockfile_dir = /var/run

# Name der lock Datei
lockfile_name = incrond

# Editor
editor = vim

Job Definition

Liste der Aufgaben

incrontab -l

Aufgaben erstellen

incrontab -e

Aufgabenliste neu laden

incrontab -d

Aufgabenliste löschen

incrontab -r

Job Anweisungen haben das Format:

<Pfad> <Event-Maske> <Befehl>

Events

Folgende Standard Masken sind definiert und könne als Event ausgelöst werden

IN_ACCESS
Auf datei wurde (lesend) zugegriffen
IN_ATTRIB
Metadaten wie Dateirechte, Zeitstempel etc. wurden geändert.
IN_CLOSE_WRITE
Zum schreiben geöffnete Datei wurde geschlossen
IN_CLOSE_NOWRITE
Geöffnete (nicht zum schreiben) Datei wurde geschlossen
IN_OPEN
Datei wurde geöffnet
IN_MODIFY
Datei wurde verändert
IN_CREATE
Es wurde eine Datei/Ordner im überwachten Verzeichnis erstellt
IN_DELETE
Es wurde eine Datei/Ordner im überwachten Verzeichnis gelöscht
IN_DELETE_SELF
Überwachte Datei/Ordner wurde gelöscht
IN_MOVE_SELF
Überwachte Datei/Ordner wurde verschoben
IN_MOVED_FROM
Datei wurde aus überwachtem Ordner verschoben
IN_MOVED_TO
Datei wurde in überwachtem Ordner verschoben

Hinzukommen Event-Masken zur Definition

IN_ALL_EVENTS
Erspart manuelle Liste mit allen Events
IN_DONT_FOLLOW
Löse Pfade von symbolischen Links nicht auf
IN_ONESHOT
Über wache den Pfad für nur einen Event lang
IN_ONLYDIR
Überwache den Pfad nur, wenn es ein Verzeichnis ist

Desweiteren gibt es einen Event, welcher nicht in der inotify Bibliothek enthalten ist

IN_NO_LOOP
Unterbreche Überwachung, bis aktueller Event vollständig abgearbeitet ist (bis sein Kindprozess terminiert)

Befehle

In der Befehlsangabe können folgende Variablen genutzt werden

$$ - Dollarzeichen
$@ - Der überwachte Dateisystempfad
$# - Name der Datei, welche den Event auslöste
$% - Der Event (Text)
$& - Der Event (Nummer)

Beispiele

Sobald in /var/mail eine Datei geändert wurde soll der Befehl asd mit dem vollen Dateipfad aufgerufen werden.

/var/mail IN_CLOSE_WRITE asd $@/$#

Schreibe einen Log-Eintrag sobalt eine Datei im Verzeichniss /data geändert, erstellt, gelöscht oder verschoben wird.

/data IN_MODIFY,IN_CREATE,IN_DELETE,IN_MOVED_FROM,IN_MOVED_TO echo "$(date) file: $# in: $@ event: $%" >> /var/log/mylog.log

Schreibe eine Mail sobald in /var/log/error.log Meldungen geschrieben werden.

/var/log/error.log IN_MODIFY tail -n 1 $% | mail -s "an error occured" support@example.com