Wenn ein USB-Stick eingesteckt wird, soll ein Skript ausgeführt werden.

Ein neuer Artikel wurde veröffentlicht
  • Guten Tag,


    Ich würde gerne das mein Pi 3 ein Skript ausführt sobald ich ein USB Stick einstecke, dieses soll dann .txt Dateien von dem Stick auslesen.

    Mein Problem lieg daran das ich weder mit diesem Thread: USB automount, noch mit diesem udev rule, weitergekommen bin.


    Eine rules Datei habe ich angelegt:


    Und mein Skript sieht so aus:



    Angeschaut habe ich mir auch den Thread hier: Auch ein Automount.


    Wie man sieht kann mein Skript noch keine Dateien auslesen, aber nicht mal die 'echo' Ausgabe kommt an, noch wird die log.txt Datei erstellt.


    Ich komme irgendwie nicht weiter, und das Problem ist ich habe kein Plan warum? :conf:


    Kann mir jemand helfen,

    ...habe ich etwas vergessen?

    ...ist etwas falsch?

    ...ist es nicht möglich? (Wobei ich YT-Videos gesehen habe bei denen es geklappt hat)



    Gruß AsgardPi

    :danke_ATDE:

  • Ich habe mir hierbei so beholfen: In einem Script, welches jede Minute von Crontab gestartet wird, wird geprüft, ob der USB-Stick gemountet wurde, und dann wird ein anderes Script aufgerufen und anschliessend der Stick wieder geunmountet. NAchteil: Nach dem Einstecken kann bis zu einer Minute vergehen, bis was passiert.

  • So, guten Abend Leute,

    nach dem Urlaub und der ersten halben Woche Arbeit bin ich mal wider hier.


    Danke, den Link hatte ich auch als erstes gefunden, das hat aber alles nicht funktioniert. :(

    Ich weiß nicht wie es daran liegt, aber wenn ich ein älteres Image auf den Pi spiele funktionieren die angaben in dem Thread, sobald ich Update läuft es wieder nicht.

    ABER egal xD "Never Change A Running System"

    Also einfach nicht Updaten und es geht.

  • Meines Erachtens wird das so nicht funktionieren, weil im Script...

    /bin/mount $DEVICE $MountTo


    ...der Filesystemtyp fehlt, damit der entsprechende Mounthelper ausgewählt wird. Das mag im Vordergrund noch ohne Angabe gehen, aber ich denke, auf der tieferen Ebene von UDEV nicht mehr. Ohne Angabe funktioniert das imho nur bei iso9660-FS. Außerdem würde ich kontrollieren, ob das Script überhaupt gestartet wird, um einen Fehler auf dieser Ebene auszuschließen.


    Füge dazu unter der ersten Zeile im Script dieses Statement ein, mit der ein Logeintrag beim Start des Scripts erzeugt wird.

    Code
    1. /bin/echo "active/running P1=$1 P2=$2" | systemd-cat -t "thlu:`basename $0`" -p "info"


    Dann starte im Terminal

    Code
    1. journalctl -f

    und stecke erst danach den Stick ein. Wenn das Script gestartet wird, siehst Du diesen Logeintrag und vielleicht auch Fehlermeldungen.