Linux Bibel online ~ Incron

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz.

Change language by Google translator: ...

Unter Linux lässt sich nahezu alles automatisieren, wie sich dies durch auf zeitlich vorgegebene Aufgaben regeln lässt lesen Sie unter Cron / Anacron, in diesem Fall wollen wir Aufgaben dann erledigt sehen wenn etwa eine oder mehrere bestimmte Dateien in einem bestimmten Verzeichnis landen, so gesehen eine auf Ereignisse basierende Aufgabe.
Nur als ganz einfaches unbedeutendes Beispiel, Sie kopieren eine PDF-Datei in ein Verzeichnis namens "Drucken" und die Datei soll ausgedruckt werden ohne das Sie die Datei öffnen oder auch nur sonst irgendwie das Drucken anstoßen müssen. Oder eine Bild-Datei soll konvertiert werden. Lassen Sie sich etwas einfallen - alles ist möglich. Der Name der nötigen Software - "Incron"

Incron installieren

Sie installieren die Software unter auf Debian basierenden Systemen wie Ubuntu, Kubuntu, Linux Mint und so weiter ganz einfach über die Paket-Verwaltung durch das Paket "incron".

Was kann Incron nicht?

Gleich zu Beginn wollen wir uns einmal ansehen was Incron nicht kann:

  • Incron kann nur auf dem lokalen System agieren, kann also nicht über das Netzwerk arbeiten.
  • Incron kann nur im angegebenen Verzeichnis arbeiten, es kann beispielsweise nicht in dessen Unterverzeichnissen mit der selben Aufgabe arbeiten, jedes Verzeichnis muss selbst angegeben werden.
  • Für jedes angegebene Verzeichnis ist nur eine Incron-Aufgabe möglich.
  • Start und erste Einrichtung

    Die Software startet nach der Installation nicht automatisch mit dem System - dies erledigen wir über Systemd als Nutzer "root" durch den Befehl:

    systemctl enable incrond

    Bevor wir nun Incron starten und der Software zeigen was sie tun soll müssen wir noch jedem Nutzer der Incron nutzen können soll dies auch erlauben. Dazu findet sich im System-Verzeichnis "/etc" die Datei "incron.allow" die man mit einem beliebigen Text-Editor als Nutzer "root" bearbeitet. In jede Zeile kommt ein Nutzer-Name - inklusive dem Nutzer "root", denn auch dieser muss erlaubt sein wenn er Incron nutzen möchte. Kleines Beispiel:

    root robert petra

    Ist dies erledigt startet man entweder das System neu damit Incron automatisch startet oder man startet den Dienst auf dem Terminal durch den Befehl:

    systemctl start incron.service

    Aufgaben erstellen

    Läuft Incron gilt es dann die eigentlichen Aufgaben für Incron fest zu legen, dabei arbeitet man ähnlich wie mittels Cron, als erstes gilt es den Editor für die Software zu öffnen die auch gleich die nötige Aufgaben-Datei erstellt oder eine vorhandene öffnet:

    incrontab -e

    Wie Cron erwartet auch Incron in jeder Zeile eine Aufgabe, anders als unter Cron fällt jedoch hier die Syntax einfacher da man keine Zeit-Angaben muss - diese fällt nun in der Syntax so aus:

    /pfad/zum/verzeichnis ereignis befehl

    Damit man mit Incron nun vernünftig arbeiten kann stehen noch einige benötigte Optionen zur Verfügung die man in den Befehlen nutzen kann:

  • $# - Datei-Name oder Verzeichnis-Name der das Ereignis auslöst
  • $@ - Pfad des zu überwachenden Verzeichnisses
  • $% - Bezeichnung des Ereignisses
  • $& - Numerische Bezeichnung des Ereignisses
  • Beispiele

    Hier ein paar Beispiele um zu verstehen wie man mit Incron arbeiten könnte.

    Dateien Drucken Nehmen wir einmal an Sie wollen eine PDF-Datei ausdrucken, Sie müssen erst einmal die PDF-Datei öffnen, anschließend den richtigen Schalter zum drucken suchen. Wie wäre es einfach sich ein Verzeichnis anzulegen in dieses man die PDF-Datei kopiert und Incron übernimmt den Rest - dabei ist es natürlich vollkommen egal ob es sich um eine PDF-Datei handelt, eine ODF-Datei oder ein Bild, ... Nemen wir einmal an ich habe das Verzeichnis "Drucken" angelegt:

    /home/robert/Drucken IN_CREATE lpr $#

    Wir geben also zu Beginn das Verzeichnis an das sich "/home/robert/Drucken" nennt. "IN_CREATE" schließlich ist das Ereignis - diese werden wir weiter unten kennen lernen und "lpr $#" das Kommando, also "lpr" der Befehl zum Drucken und "$#" die Bezeichnung für die Datei die das Ereignis ausgelöst hat.

    Verzeichnisse / Dateien komprimieren In einem weiteren Beispiel wollen wir Dateien oder auch Verzeichnisse in ein Verzeichnis namens "Komprimieren" kopieren oder verschieben die automatisch komprimiert werden sollen. Dazu lege ich mir der Einfachheit halber ein nettes kleines Script an:

    #!/bin/bash tar czf ~/$1.tar.gz $2 rm -R $2/$1

    Nenne das Script etwa "komprimieren.sh" und mache es ausführbar:

    chmod.x komprimieren.sh

    Nun erstelle ich die Aufgabe für Incron:

    /home/robert/Komprimieren IN_CREATE,IN_MOVED_TO sh /home/robert/komprimieren.sh $# $@

    Bedeutet im ganzen nichts anderes als das alle Dateien und Verzeichnisse die im Verzeichnis "Komprimieren" landen durch das Script "komprimieren.sh" in ein Tar.gz-Archiv komprimiert werden und im Home-Verzeichnis landen.

    Incron gibt dem Nutzer unendliche Möglichkeiten die nur durch die Phantasie des Nutzers beschränkt werden.

    Ereignisse

    Alle möglichen Ereignisse zu beschreiben wäre etwas übertrieben, haben Sie jedoch vor Incron zu nutzen finden Sie diese sowie deren Beschreibung natürlich nach der Installation auf der Manpage der Software die Sie auf dem Terminal mit dem Befehl:

    man incron

    öffnen.

    Mehr Tipps rund um das Terminal finden Sie im Linux Bibel Terminal-Wiki

    Suche Nach oben Startseite Mail an den Autor Links rund um Linux









    SiteLock