.sh File ??

  • Hallo,


    Ich bekomme es einfach nicht gebacken...hat vielleicht jemand eine Hilfe für mich ?


    Ich versuche vergeblich eine Datei Namens toggle.sh im Pfad

    Code
    /usr/local/bin/toggle.sh


    auszuführen ?


    meine .php Seite mit Namen toggle.php ist wie folgt:


    und die toggle.sh:

    Bash
    #!/bin/bash
    gpio -g write 18 0
    sleep 5
    gpio -g write 18 1


    Mein Problem ist die toggle.sh kann ich zwar per Putty in das Verzeichnis schreiben und ist dann auch sichtbar nach den erstellen, aber über FTP ist die .sh nicht sichtbar und lässt sich auch per FTP nicht in das Verzeichnis kopieren ?


    Führe ich die SHELL manuell aus funktioniert alles ...aber wie gesagt über Code nicht ??


    Fehlen mir Rechte oder ist was falsch in den Codes ?....


    Wäre nett wenn mal jemand drübergucken könnte ....mir geht es eben um den Sleep Befehl brauche ich für Garagentor ( Taster ) ! Wiringpi, Webserver,PHP läuft alles einwandfrei....



    Vielen Dank,

  • Ich tippe als erstes auf Rechte, dein Webserver ist mit www-data unterwegs und hat sinnvollerweiße wenig Rechte. Versuche doch mal die toggle.sh im Ordner mit dem restlichen Code abzulegen und sicherheitshalber man ein chmod +x toggle.sh machen, damit machst du das script für alle ausführbar.

  • ich Tippe auch auf Rechte weil ich komischerweise im Verzeichnis /usr/local/bin nix machen kann hab versucht mit chown www-data ...usw. Rechte zu vergeben ging aber nicht er sagt immer ich habe keine Berechtigung.....


    ....also soll ich die .sh ins /var/www Verzeichnis schieben ?


    Vielen Dank
    [hr]
    hmmmm. im www Verzeichnis gehts auch nicht.....wenn ich aber manuell in Konsole reinklopfe funzt alles tadellos ???? :fies:

  • was sagt ein ls -la in /var/www ?
    ein chown www-data in */bin ist nicht so schlau, in */bin sind ausführbare Dateien für alle, ansonsten sollten die ausführbaren dateien nicht in allgemeinen Ordnern liegen. (Ja für alle oder nur für root...)

  • habe jetzt alles in /var/www geschoben funzt aber auch nicht......wenn ich manuell die toggle.sh ausführe mit bash toggle.sh kommt diese Meldung :


    sleep: ungültiges Zeitintervall â5\râ
    âsleep --helpâ gibt weitere Informationen.
    toggle.sh: Zeile 5: $'done\r': Kommando nicht gefunden.


    wenn ich aber alles aus der .sh Datei kopiere und mit rechter Maustaste in die Konsole direkt reinkopiere geht alles wie es soll...aber eben nur so.....irgendwie bin ich zu Doof dazu.....:s

  • Wie hast du die toggle.sh denn erstellt?
    Das sieht mir so aus als hättest du die Datei mit Windows erstellt? Linux versteht aber die Zeilenumbrüche von Windows nicht.. Mach also mal folgendes: lösch die Datei, mache dann nano toggle.sh und copy&paste den Code dort rein (über PuTTY entweder mit rechter Maustaste oder SHIFT+EINFG , einfügen) und anschliesend nicht vergessen die Datei auch ausführbar (chmod +x toggle.sh) zu machen.




    PS: Nicht nur der Besitzer der Datei ist wichtig sondern auch die Zugriffsrechte der Datei sowie der Verzeichnisse - aus Sicherheitsgründen und auch der Ordnung halber aber nicht /usr/local/bin/ verändern! Desweiteren kann es sein das www-data nicht das Recht hat "gpio" zu benutzen, in dem Fall bitte die Forumsuche oben rechts nach " sudowebscript " durchsuchen

  • meigrafd


    ...habe es so gemacht wie du beschrieben hast nach "chmod +x toggle.sh" kommt dies :


    chmod: Beim Setzen der Zugriffsrechte für âtoggle.shâ: Die Operation ist nicht erlaubt


    aber mit " bash toggle.sh " startet es zumindest schon hattest recht mit Windows Formatierung.....:bravo2:


    ....jetzt sollte es nur mehr über script funzen.......

  • auch hier hattest wieder recht Zauberwort sudo ;)
    [hr]
    meigrafd


    Du hast gerade einen sehr glücklichen Menschen aus mir gemacht :bravo2: :bravo2:


    Jetzt funzt alles so wie es soll..... hier sieht man wieder wenn man null Ahnung hat wie Dumm man da steht .... aber naja langsam lern ich doch noch das eine oder andere hier im Forum !!


    Vielen Dank an alle die mir geholfen haben.......


    wünsche euch noch nen schönen Tag :danke_ATDE: