crontab -e klappt nicht

  • Hallo zusammen,


    ich arbeite erst seit kurzem mit einem Pi 3 und aktuellem Raspbian Jessie, bin aber noch sehr unerfahren.


    Ich habe vor ein Skript /usr/local/bin/luefterskript.sh jede Minute aufzurufen.
    Unter crontab habe ich folgendes eingegeben: */1 * * * * /usr/local/bin/luefterskript.sh


    Beim Speichern mecker der Pi aber schon:


    /tmp/crontab.135UtE/crontab":1: bad command



    was mache ich falsch. Eigentlich habe ich alles nach Anleitung so gemacht.

  • .... Dein Lüfterscript gehört nicht nach /usr/local/bin sondern in das Homeverzeichnis des Users, mit dem der cronjob erstellt wurde.


    Könnte du bitte kurz erklären, warum es sinnvoll sein soll, ausführbare Programme dort zu speichern, wo ein user vollständige Schreib- und Ändernrechte auf Dateien hat. Ich würde sowas jedenfalls nicht tun. Scripte gehören imho auf jeden Fall nach /usr/local/bin.... und zwar ohne Schreibrecht für user.


    Jm2c

    Edited once, last by WinterUnit16246 ().

  • Weil für den user alle ausführbaren linux-dateien in systemordnern liegen, völlig losgelöst von root oder sudo. Nicht der Ort wo sie liegen ist wichtig, sondern wer schreibrechte darauf hat. Ich halte das home-dir ohne jeden Zweifel für ein NoGo. Aber jeder soll sich seine Exploits selber bauen, wie er mag. Mit nem einfachen Browserplugin brauch ich 30 Sekunden um deinen Rechner zu übernehmen. Und nach der ersten Verwendung eines sudo-befehls sogar mit rootrechten...und ich nutze dafür dein crontabscript, was idealerweise auch noch regelmäßig maschinell gestartet wird.

    Edited once, last by WinterUnit16246 ().

  • ZHallo und danke für die Antworten.
    Leider klappt es auch mit ***** nicht.
    Die crontab ist ansonsten komplett leer.
    Muss da eventuell noch was anderes stehen?


    Ich verstehe bei eurer Diskussion nur Bahnhof.
    Gerne könnt ihr mir aber erklären was ich ändern sollte.
    Habe die Anleitung für die Lüftersteuerung hier aus dem Forum.


  • ein enter hinter der zeile gemacht, also zwei zeilen?



    Ich glaube jetzt hat er es geschluckt. Man was ne schwere Geburt. Übrigens habe ich diesesmal sudo nano crontab -e ausgeführt.


    Kann ich irgendwie/irgendwo sehen ob das jetzt auch funktioniert?
    Habe den Lüfter nich nicht zur Hand.

  • Das nano ist nicht notwendig. Ein

    Code
    sudo crontab -e


    wuerde es auch tun. Das "-e" hinter dem crontab bedeutet das dieser im "editierbaren Modus" geoeffnet wird.
    Verwendest du "crontab -l" wirst Du deine crontab Eintraege sehen, diese aber nicht veraendern koennen. Diese Option wird einfach nur verwendet wenn du einen Blick auf deinen Crontab werfen moechtest. Das nur am Rande.

  • Jetzt bin ich ganz verwirrt:


    sudo nano crontab -e => hat funktioniert zu speichern ohne Fehlermeldung.
    Sudo crontab -e => steht nix drin und mein Code verursacht weiterhin beim speichern einen Fehler


    crontab -l => no crontab for pi


  • sudo nano crontab -e => hat funktioniert zu speichern ohne Fehlermeldung.


    Der Befehl erzeugt mit dem Editor "nano" mit root-Rechten eine Datei "crontab" im aktuellen Verzeichnis, das "-e" wird ignoriert, weil nano es nicht kennt. Das hat nichts mit dem Erstellen einer crontab zu tun.
    Einfach immer mal ein "sudo" vor einem Befehl zu packen, nur weil dieser evtl nicht funktioniert, ist keine gute Idee.


    Um einen Eintrag in der Benutzer-crontab anzulegen, gibst du als normaler Benutzer (pi meistens) ein:

    Code
    crontab -e


    Wenn der Editor sich öffnet, gibst du dort deine gewünschte Zeile ein und beendest diese mit einem abschliessenden Newline (return).
    Dann speicherst du das Ganze und verlässt den Editor. "crontab" (der Befehl) kümmert sich dann um den Rest.

    "There seems to be no sign of intelligent life anywhere..."

    And btw, i don't care if you use arch or whatever.

    Edited once, last by llutz ().


  • Oh man, ich glaube mir fehlen da noch ein paar basics.


    Also wenn ich nur
    [/code]
    crontab -e
    [/code]
    eingeb erscheint:
    no crontab for pi - using an empty one
    # Edit this file to introduce tasks to be run by cron.
    #
    # Each task to run has to be defined through a single line
    # indicating with different fields when the task will be run
    # and what command to run for the task
    #
    # To define the time you can provide concrete values for
    # minute (m), hour (h), day of month (dom), month (mon),
    # and day of week (dow) or use '*' in these fields (for 'any').#
    # Notice that tasks will be started based on the cron's system
    # daemon's notion of time and timezones.
    #
    # Output of the crontab jobs (including errors) is sent through
    # email to the user the crontab file belongs to (unless redirected).
    #
    # For example, you can run a backup of all your user accounts
    # at 5 a.m every week with:
    # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
    #
    # For more information see the manual pages of crontab(5) and cron(8)
    #
    # m h dom mon dow command
    ~
    "/tmp/crontab.aGIKZ8/crontab" 22L, 888C


    Da kann ich dann nix editieren etc.

  • Doch, entweder in dem du die Bedienung von vi/vim lernst ("i" für insert-mode, dann die Zeilen eingeben, anschliessend ESCAPE ":wq")
    oder du setzt deinen default EDITOR (nur für diesen einen Befehl)

    Code
    EDITOR=nano crontab -e


    Tipp: http://www.pro-linux.de/artike…ntiertes-vi-tutorial.html

    "There seems to be no sign of intelligent life anywhere..."

    And btw, i don't care if you use arch or whatever.

    Edited once, last by llutz ().

  • Also Ich habe nun folgendes eingegeben:



    mit dem Ergebniss:


    Code
    pi@raspberrypi:~ $ EDITOR=nano crontab -e
    no crontab for pi - using an empty one
    crontab: installing new crontab
    "/tmp/crontab.qNIBUJ/crontab":23: bad command
    errors in crontab file, can't install.
    Do you want to retry the same edit? (y/n)
  • Du hast jeweils ein Leerzeichen zwischen den * und am Ende der Datei eine Leerzeile eingefügt?

    "There seems to be no sign of intelligent life anywhere..."

    And btw, i don't care if you use arch or whatever.

    Edited once, last by llutz ().

  • Code
    ***** /usr/local/bin/luefterskript.sh


    Hallo Lammi1988,


    da sind ein bisschen wenig Leerzeichen zwischen den Sternen, mach mal wenigstens eines hinter jeden... das wird sicher besser gehen... :D


    Gruß, STF


  • Du hast jeweils ein Leerzeichen zwischen den * und am Ende der Datei eine Leerzeile eingefügt?


    :thumbs1:
    Die Leerzeichen haben gefehlt!!!!


    Gut jetzt habe ich gespeichert.

    Code
    pi@raspberrypi:~ $ crontab -l
    no crontab for pi


    Ist das normal?


    Wie kann ich jetzt sehen ob das Skript auch jede Minute ausgeführt wird? Kann man sich das irgendwo anzeigen lassen?


    Schon mal vielen Dank für deine Mühe, echt super!!!

  • Wenn

    Code
    crontab -l


    "no crontab for pi" zurückgibt, hast du keine gültige crontab erzeugt.

    "There seems to be no sign of intelligent life anywhere..."

    And btw, i don't care if you use arch or whatever.


  • Wenn

    Code
    crontab -l


    "no crontab for pi" zurückgibt, hast du keine gültige crontab erzeugt.


    Mhh, was soll das denn heißen:

  • "sudo crontab -l" zeigt dir die root-crontab


    ich sagte doch, vergiss das sudo

    "There seems to be no sign of intelligent life anywhere..."

    And btw, i don't care if you use arch or whatever.

    Edited once, last by llutz ().