Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14
  1. #1
    Anfänger
    Registriert seit
    27.03.2015
    Beiträge
    1
    Thanks (gegeben)
    0
    Thanks (bekommen)
    0
    Total Downloaded
    44,28 MB
    Total Downloaded
    44,28 MB
    ReceiverDanke

    Script auf USB automatisch ausführen, wenn angesteckt

    Hallo,

    ich würde gern ein automatisches Script basteln, welches sich automatisch ausführt, wenn man den Stick in den Receiver steckt. z.B. opkg update && upgrade, update der cccam.cfg, o.ä.
    Es soll eine Schnittstelle für unversierte Verwandte sein. Denen schicke ich einfach eine .sh datei, die die auf einen Stick ziehen, und den dann in den Receiver stecken. Das kriegen die noch hin.

    Wie ich die Scripte schreibe, das kriege ich hin. Nur ich habe keine Idee wie die automatische ausführung angestoßen wird.

    Vielleicht weiß hier ja jemand Rat.


    Viele Grüße & Vielen Dank schon mal!

    •   Alt Advertising

       

  2. #2
    Pike_Bishop
    Gast
    Hi,

    EDIT !
    Hier im folgenden Link steht alles was man wissen muss und ne praktikable Lösung;
    https://www.opena.tv/skripte/34020-s...tml#post299312

    Tja das könnte so einfach sein wenns udev für die Boxen gäbe aber so kanns kompliziert werden
    (wobei udev gäbe es ja aber man sollte es nicht installieren da ja schon mdev läuft und man sollte die nicht mischen).
    Mag ja sein das es mit mdev auch sehr einfach zu bewerkstelligen wäre - jedoch hab ich kaum Ahnung von mdev
    man findet im ganzen Netz keine brauchbare Doku dazu.

    Du könntest dir ein zweites Script schreiben welches durch nen Cronjob alle Minuten ausgeführt wird und immer auf der Box deiner Verwandten unter /usr/script liegt
    das abfrägt ob der Stick gemountet wurde und wenn ja das Script (Hauptscript) am Stick ausführt.

    Dazu musst aber erstmal sicherstellen das der Stick bei jedem Einstecken in ein und denselben Mountpoint gemountet wird
    was du aber auch mit dem zweiten Script selber erledigen könntest indem du einfach die uuid vom Stick per blkid abfrägst
    und den Stick dann mittels uuid in nem immer gleichen Mountpoint mountest.

    Jetzt musst dann aber weiter noch dafür sorgen wenn das Hauptscript erfolgreich durchgelaufen ist das dieses den Stick umountet
    damit nicht weiter versucht wird das Hauptscript am Stick auszuführen.

    So in der Art halt - da hast was zum Tüfteln.

    Zusammenfassung grob !
    1.) Also das Zweitscript sieht jede Minute durch den Befehl blkid nach ob der Stick angeschlossen ist
    wenn nicht, Abbruch also exit

    2.) Falls aber schon, dann mountet es erstmal mittels uuid den Stick nach z.b: /media/scriptstick
    Ordner scriptstick kannst ja ebenfalls im Zweitscript erstellen lassen bei Bedarf.
    , und nun führt das Zweitscript weiters das Hauptscript am Stick aus.

    3.) Bei Erfolg des Hauptscripts am Stick musst du nun dafür sorgen das der Stick umountet wird
    damit sich das Ganze nicht endlos wiederholt also das Zweitscript wieder jede Minute mit exit abbricht.
    Hier würde ich ja das Hauptscript gar nicht direkt am Stick ausführen sondern es mittels Zweitscript temporär
    auch nach /usr/script kopieren und von da aus ausführen und wenns abgearbeitet ist gibts dann keine Probleme
    wenn das temporäre Hauptscript den Stick wieder umountet und es müsste sich sogar selbst löschen können
    mit dem entsprechenden Befehl darin.


    Grüsse
    Pike
    Geändert von Pike_Bishop (30.04.2017 um 16:15 Uhr)

  3. #3
    Hautdenlucas
    Gast
    die sollen sich dreamexplorer installieren, dann die updates mit ordner und unterordner so auf den stick, damit die nur noch nach root kopiert werden brauchen. geht bei dreamexplorer mit gelber taste, einmal gemacht, merkt der sich sogar das ziel. denke das kriegen die kids auch hin und opas wie ich auch.

  4. #4
    Pike_Bishop
    Gast
    Ja klar, mit DreamExplorer würden die das sicher auch hinbekommen wenn man sie anlernt, aber ich würd da stattdessen lieber das Plugin ppanel nehmen
    oder noch besser das Script per Hotkey einfach auf ne Taste legen (einfacher gehts eh nicht mehr)
    Script liegt unter /usr/script man fügt es mittels Hotkey zu ner Taste nach Wahl hinzu und die Verwandten müssen nur noch diese eine Taste drücken.
    Wozu da noch nen Stick !


    @madie
    wärst du so nett und verschiebst den Thread in die Script Abteilung - Danke


    Grüsse
    Pike
    Geändert von Pike_Bishop (17.04.2017 um 18:32 Uhr)

  5. #5
    Avatar von madie
    Registriert seit
    05.04.2013
    Beiträge
    481
    Thanks (gegeben)
    1409
    Thanks (bekommen)
    3257
    Total Downloaded
    295,50 MB
    Total Downloaded
    295,50 MB
    ReceiverDanke
    Box 1:
    AX HD51
     
     
    kein problem. done

  6. Thanks - bedankten sich
  7. #6
    Pike_Bishop
    Gast
    Hi,

    Danke @madie.

    @Shortycc
    Kannst auch mal hier nachlesen wegen mdev;
    mdev Regeln und Autostart?
    da hat schonmal einer sein Glück versucht is dann aber auf udev ausgewichen,
    wenn man aber den Beitrag #2 vom @niki da liest klingt das gar nicht so schwer - vielleicht probierst da erstmal was hinzukriegen

    Ich meine da läuft ja sonst auch alles über Scripts bei mdev wies aussieht und funktioniert.

    Sieht man sich z.b: die Zeile 40 in der /etc/mdev.conf an steht da;
    Code:
    [hs]d[a-z][0-9]? 0:0    664     */etc/mdev/mdev-mount.sh
    nur gilt das so halt für alle devices von hda[1-9]-hdz[1-9] und sda[1-9]-sdz[1-9] (die null spar ich mir gibt ja kein z.b: sda0 das lautet dann stattdessen einfach sda)
    jedoch aber werden so die vorhandenen devices durch das Script /etc/mdev/mdev-mount.sh gemountet
    und so was ähliches bräuchtest du, nur halt explizit nur für den bestimmten Stick und da weiss ich nicht ob auch in mdev die uuid akzeptiert wird
    denn ne eindeutige Kennung also durch die uuid wäre da schon sehr wichtig.


    Und abschliessend hier noch die mdev Doku;
    https://git.busybox.net/busybox/plain/docs/mdev.txt


    EDIT !
    Also hab jetzt ein bisschen mit mdev gespielt, aber bring nix zusammen.
    Hab mal nen zusätzlichen Stick gemountet wo ich danach wusste das der immer als /dev/sde1 erkannt und nach /media/sde1 gemountet wird
    , auf diesen Stick hab ich ein Testscript gelegt und weiters in der /etc/mdev.conf die folgende Zeile eingetragen;
    Code:
    sde1             0:0    664     @/media/sde1/test.sh
    dann neugestartet und Stick im Betrieb angestöpselt und da tut sich gar nix.
    Dann hab ich das Testscript nach /etc/mdev kopiert und die Zeile in der /etc/mdev.conf wie folgt angepasst;
    Code:
    sde1             0:0    664     @/etc/mdev/test.sh
    aber auch da tut sich absolut nix nach Einstecken des Sticks - wer weiss schon ob das so überhaupt machbar ist mit mdev...

    Das Testscript nennt sich test.sh und gibt nur ne simple Meldung am TV aus (und funktioniert wenn man es manuell aufruft), sieht so aus;
    Code:
    #!/bin/bash
    
    ## Variablen ##
    BOXIP=http://localhost
    WGET=/usr/bin/wget
    
    
    STARTDATE="$(date +%a.%d.%b.%Y-%H:%M)" && echo -e "\n\nJOB START -> $STARTDATE\n\n" && sleep 7
    $WGET "$BOXIP/web/message?text=This%20is%20a%20test%20->%20$STARTDATE&type=1&timeout=10" && sleep 5
    
    exit

    Grüsse
    Pike
    Geändert von Pike_Bishop (17.04.2017 um 22:20 Uhr)

  8. #7
    Pike_Bishop
    Gast
    Hi,

    Bin jetzt ein bisschen weiter;
    Mit dieser Zeile in der /etc/mdev.conf;
    Code:
    $SUBSYSTEM=usb    root:root 664 @/etc/mdev/test.sh
    und dem Testscript aus dem letzten Post unter /etc/mdev klappt das erstmal - das Script wird nach Einstecken des Sticks ausgeführt.

    Das is zwar ein Anfang, aber ich glaub fast das Script wurde da zweimal ausgeführt das is nicht so schön (bin da aber noch nicht sicher)
    , und dann is das insgesamt noch ziemlicher Mist denn das würde immer ausgeführt werden wenn man ein USB Gerät dranhängt egal welches.

    Muss jetzt erstmal noch testen ob das auch klappt wenn das Script am Stick liegt.

    EDIT !
    Dachte ich mir schon wenn das Script am Stick liegt gelingts nicht, aber das könnte man ja umgehen indem man ein zweites Script immer fix an der Box hat
    welches das Script vom Stick auf die Box kopiert und dann ausführt.

    Das andere Problem na ja, wenn man das nun so belässt in der /etc/mdev.conf
    (das Script kann ja eh nur dann ausgeführt werden wenn es am USB Datenträger das Hauptscript findet)
    da könnte man das Fixe Zweitscript welches immer auf der Box liegen muss doch mit ner simple if Abfrage ins exit schicken wenns kein Script vorfindet
    z.b: beim Anstecken von anderen USB Datenträgern und wenn der passende USB Datenträger angeschlossen wird soll es das Script welches
    ja dann vorhanden ist am USB Stick kopieren und ausführen - das sollte doch klappen fürs Erste.


    Grüsse
    Pike
    Geändert von Pike_Bishop (17.04.2017 um 23:35 Uhr)

  9. #8
    Pike_Bishop
    Gast
    Hi,

    Also gut ich hab das nun nochmal getestet wen das Script auf der Box unter /etc/mdev liegt das funkt.
    Aber irgendwie (es kommt zuerst die Meldung das keine anzeigbaren Datein gefunden wurden was ja korrekt ist kommt ja vom Image)
    und dann meine Message am TV das ist soweit auch gut aber die Meldung zählt dann den Timeout runter und kommt dann nochmal das
    lässt mich denken das das Script zweimal ausgeführt wird (kann aber auch täuschen).

    Jedenfalls kommt zum Schluss aber erneut die Meldung vom Image das keine anzeigbaren Dateien gefunden wurden - ist nicht schön aber stört auch nicht kommt nur noch ganz kurz.

    Nun könntest mal probieren das Testscript nicht nach /etc/mdev sondern nach /usr/script zu legen und stattdessen in der /etc/mdev.conf das einzutragen;
    Code:
    $SUBSYSTEM=usb    root:root 664 @/usr/script/test.sh
    Das sollte auch klappen, dann die Box komplett neustarten und dann nen USB Stick einstecken dann solltest du sehen können was Sache ist nämlich am TV
    die Message;
    Code:
    This is a test -> Datum
    wenn das klappt (was es ja sollte und hier tut) bist auf nem guten Weg.

    Denn dann brauchst bei deinen Verwandten nur noch einmal ein Script das immer auf deren Box liegt welches statt dem Testscript ausgeführt wird
    und das abfrägt ob an dem eingesteckten USB Datenträger das Hauptscript vorliegt und wenn ja dieses auf die Box kopiert und von da aus ausführt
    und wenn nein nur mit nem exit abbricht.
    Das könnte in etwa so aussehen;
    Code:
    #!/bin/bash
    
    if [ -e /media/sde1/stickscript.sh ] ; then
        cp /media/sde1/stickscript.sh /usr/script
        chmod 755 /usr/script/stickscript.sh
        bash /usr/script/stickscript.sh
    else
        exit 1
    fi
    
    exit
    Bleibt aber ein Problem - was wenn der Stick nicht wie in meinem Beispiel immer nach /media/sde1 gemountet wird ?
    Da müsstest im Zweitscript noch was dahingehend einbasteln.
    z.b: könntest den Stick am Anfang im Zweitscript selber per uuid in den immer gleichen Mountpoint mounten, das kennst ja bestimmt is ne eindeutige Kennung.

    Dazu machst aber am Besten ne Variable im Script also so als Beispiel;
    Code:
    USB_STICK_UUID="UUID=88AB-3444"
    und dann so mounten;
    Code:
    mount $USB_STICK_UUID /media/usbstick
    Müsstest aber zuvor noch die uuid vom Stick per blkid rausgreppen und das quasi davon abhängig machen
    also wenn die uuid per blkid und grep gefunden wird dann mounten wenn nicht dann exit

    Mehr kann ich dir derweil nicht bieten - du bist dran
    und bitte Feedback was Sache ist.


    Grüsse
    Pike
    Geändert von Pike_Bishop (18.04.2017 um 02:04 Uhr)

  10. Thanks -, Heart, satguy, sgs bedankten sich
  11. #9
    Hautdenlucas
    Gast
    ich glaub shortycc interessiert das gar nicht mehr @Pike_Bishop mach bitte weiter bin auch immer offen für was neues.

  12. #10
    Pike_Bishop
    Gast
    Hi,

    Ja da könntest du recht haben, habe jedenfalls schon ab und an beobachten können das ein Neuer ne Frage stellt und danach hört man nie wieder was von dem.
    Aber is ja auch egal - natürlich mach ich da weiter, interessiert mich ja auch selber sehr aber bitte Geduld hab ja nicht immer Zeit oder Lust dazu.

    Muss halt mal schauen das ich das bei mir hier perfekt ans Laufen bekomme wenns neues gibt meld ich mich wieder.


    Grüsse
    Pike

  13. Thanks stein17, -, sgs bedankten sich

Seite 1 von 2 12 LetzteLetzte

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 Uhr.
Powered by vBulletin® Version 4.2.5 (Deutsch)
Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.
Resources saved on this page: MySQL 5,56%
Parts of this site powered by vBulletin Mods & Addons from DragonByte Technologies Ltd. (Details)
vBulletin Skin By: PurevB.com