send-Befehl in crontab oder Datei einbringen ?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Ich wollte, nachdem ich eine Funk-Steckdose manuell geschaltet hab, nun eine über crontab täglich schalten.Die "send.cpp" mit der man den Befehl manuell schalten kann, liegt im Ordner :
    /home/pi/raspberry-remote/send.cpp.
    Ich wollte den send-Befehl von Montag bis Freitag um 5:50 senden.Erstmal jeden Tag im Monat, also würde der Befehl in crontab ungefähr so heißen:

    Code
    50 05 * * 1,2,3,4,5 root /home/pi/raspberry-remote/send.cpp

    (Ich weiß nicht ob 1-5 auch geht,deshalb so)
    So würde crontab jeden Tag im Monat,darunter aber nur die Wochentage Montag-Freitag, um 5:50 die "send.cpp" ausführen.Aber die "send.cpp" hat keinen bestimmten Befehl zum ausführen, manuell würde dieser

    Code
    sudo ./send 11111 1 1

    heißen (sudo wird durch root ersetzt) wenn man im Terminal dies im Ordner "raspberry-remote" ausführt, aber wie bringt man den Befehl in die "send.cpp" ? Oder muss der Befehl noch irgendwie in crontab direkt zwischen ?
    Eine gut erklärte Antwort wäre perfekt, denn falls ich dort in die "send.cpp"-Datei etwas einfügen muss, kenn ich mich da noch nicht richtig aus.

    MfG

  • Hallo!

    die send.cpp wurde meines Wisssens nach für für das Kompilieren benötigt.
    Das eigentliche Senden geht dann mit ./send und dem Hauscode wie von Dir schon beschrieben.

    Wenn Du das per crontab starten willst, schreibst Du entweder den Befehl direkt in die crontab, also:


    Code
    50 05 * * 1,2,3,4,5  ./home/pi/raspberry-remote/send 11111 1 1


    Ich bin mir allerdings bei der Zeitangabe nicht ganz sicher sowie beim Aufruf des send-Befehls.


    Oder Du machst Dir ein kleines Bash-Script, in dem folgendes steht:


    Code
    #!bin/bash
    cd /home/pi/raspberry-remote/
    ./send 11111 1 1

    die Datei noch ausführbar machen:


    Code
    chmod +x schaltung.sh


    Und dann als root angemeldet in die crontab eintragen.

  • Erstmal danke für die Hilfe, aber wenn ich jetzt nichts falsche gemacht habe geht das erste nicht.Zum zweiten hab ich ein bash skript für ein und aus erstellt und das :

    42 21 * * * root /home/pi/Documents/send-an.sh
    43 21 * * * root /home/pi/Documents/send-aus.sh

    den Wochentag habe ich erstmal zum testen ignoriert, der pfad wo das skript ist ist hoffentlich egal und im Skript steht immer jeweils der Befehl bloß einmal mit an und einmal mit aus.Bloß schalten tut sich noch nichts.... Was ist jetzt noch falsch ?

  • Bei an sagt er mir:

    #!bin/bash
    cd /home/pi/raspberry-remote/
    ./send 11111 1 1

    Und bei aus das gleiche nur mit ...../send 11111 1 0:

    #!bin/bash
    cd /home/pi/raspberry-remote/
    ./send 11111 1 0

    tschuldigung,hab jetzt erst gesehen was du meintest.Wenn ich den Befehl einfach so im Terminal eingebe kommt :

    -bash: ./send: Permission denied

    .....was bedeutet ? Kein plan,ich hab aber die beiden shell.skripte mit

    chmod +x /home/pi/send-an.sh und
    chmod +x /home/pi/send-aus.sh

    zugelassen.Und den Pfad hatte ich nochmal geändert und direkt in den "pi" Ordner getan.Und dann nochmal zugelassen.Also crontab führt die Befehle aus,aber ohne Wirkung weil die noch nicht funktionieren oder wie ?

    MfG

  • wenn Du den Send-Befehlmit sudo ./send 11111 1 1 ausführst sollte es normalerweise klappen.

    Ich glaube, mann kann send nur mit Root-Rechten ausführen.
    Daher war der Tip oben, als Root-user das Script in die crontab zu schreiben, nicht so falsch.


  • ...Zum zweiten hab ich ein bash skript für ein und aus erstellt und das :

    42 21 * * * root /home/pi/Documents/send-an.sh
    43 21 * * * root /home/pi/Documents/send-aus.sh


    Hab ich doch schon mal geschrieben, dass ich das nicht mit sudo sondern mit root eingebe, siehst du hier oben doch.sudo benutze ich nur im Terminal um das manuell zu machen,aber mein der zeitiges Problem ist, dass ich was beim Skript (denke ich) falsch gemacht hab.Denn normalerweise kann man ein erstelltes Bash-skript mit

    Code
    ./SKRIPT


    öffnen oder zumindest anschauen ob es sowas gibt.,aber da das noch nicht gibt muss ich das irgendwie hinkriegen das das Skript ausführbar ist.Ansonsten kann crontab da auch nichts mit anfangen.

  • Nach mehrfachen überschauen hab ich nun was im Bash-Skript geändert, wo wohl ein Fehler war,aber nur ein Schrägstrich und das ende "exit 0".In contrab hab ich jetzt derzeit stehen :

    Code
    23 23 * * * root /home/pi/send-on.sh


    schaltet aber immer noch nicht ,obwohl das mit

    Code
    sudo ./send-on.sh


    schon geht (sudo muss bei WiringPi angegeben werden).Jetzt ist also nur noch der crontab befehl falsch.(die "send-an.sh" hab ich übrigens zwischendurch in"send-on.sh" geändert).Ich guck grad selbst nochmal nach dem richtigen Befehl ,aber ein Hinweis wäre nett,danke.

    ok, ok .Warum ich da nicht sofort drauf gekommen bin, die Lösung ist

    Code
    0 6 * * 1,2,3,4,5 sudo ./send-on.sh

    das gleiche gilt auch für "send-off.sh".Danke für jeden Tipp, alleine wäre ich höchst wahrscheinlich nicht drauf gekommen.
    :danke_ATDE::thumbs1::D

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!