Crontab führt keinen einfachen Befehl aus

398
Timmy

Als Benutzer angemeldet piIch führe aus: crontab -eund füge diese Zeile am Ende der Datei ein, speichere und beende. @reboot touch /home/pi/Documents deleteme

Dann starte ich neu und ich kann keine Dateien deletemeim Ordner finden/home/pi/Documents

Wo ist das problem

Dies sind die Berechtigungen des Ordners:

drwxr-xr-x 6 pi pi 4096 nov 24 09:50 Documents

0

2 Antworten auf die Frage

3
Jarek Jóźwik

Du solltest haben:
@reboot touch /home/pi/Documents/deleteme

Und Sie sollten eine deletemeDatei in Ihrem /home/pi/DocumentsVerzeichnis haben.
Sie versuchen hier eigentlich nur das Date-Attribut des Documents-Verzeichnisses zu aktualisieren, jedoch mit dem hinzugefügten Parameter - "deleteme".
Sie können immer überprüfen, ob cron versucht hat, eine der crontab-Zeilen auszuführen, indem Sie in cron log nachsehen, normalerweise in /var/log/cron.

Du hast recht, es ist nur ein Fehler, `touch` funktioniert perfekt, aber ich verstehe wirklich nicht, warum das nicht funktioniert:` @reboot python3 /home/pi/Documents/my_script.py & `, wenn ich manuell schreibe : python3 /home/pi/Documents/my_script.py & `es funktioniert einwandfrei. Ich verstehe das wirklich nicht Timmy vor 6 Jahren 0
Ich bin vielleicht falsch, aber das "&" -Zeichen macht hier Probleme. Cron-Jobs werden ohnehin als separate Aufgaben ausgeführt, sodass es nicht sinnvoll ist, die Ausführung im Hintergrund ausdrücklich anzuweisen. Versuchen Sie auch, einen absoluten Pfad für Python-Binärdateien anzugeben. Es ist in der Regel auch eine Fehlerursache. Jarek Jóźwik vor 6 Jahren 0
Leider funktioniert es nicht, auch mit `@reboot / usr / bin / python3 / home / pi / Documents / iceuploadbot.py` startet der Bot nicht beim Booten. Um es klarer zu sagen, manchmal beginnt es ohne Probleme, andere Male (die Mehrheit) funktioniert es nicht Timmy vor 6 Jahren 0
Überprüfen Sie das Cron-Protokoll in diesem Fall, ob der Cron mindestens versucht, diesen Bot bei jedem Start zu starten. Wenn es manchmal startet, manchmal nicht, liegt möglicherweise das Timing-Problem vor - / home ist nicht eingebunden. Kannst du das Skript woanders hinbringen? Auf ein Volume, das beim Booten sicher gemountet wird? Jarek Jóźwik vor 6 Jahren 0
Danke, ich habe es gelöst, das Problem war, dass der Bot beim Booten nach einer Verbindung sucht, das LAN jedoch nicht bereits verbunden ist. Ich habe das Einfügen von 5 Sekunden Schlaf als erste Anweisung des Bots gelöst. Den Bot anderswo zu verschieben, hat nicht geholfen. Timmy vor 6 Jahren 0
0
jcbermu

Die wahrscheinlichste Erklärung ist, @rebootdass in einem Moment ausgeführt wird, in dem / home noch nicht installiert ist.

Um sicherzugehen, ändern Sie die Zeile in etwa wie folgt:

@reboot echo "test" > /var/tmp/reboot.txt 2>&1

Starten Sie dann den Computer neu und prüfen Sie, ob eine Datei /var/tmpaufgerufen wird reboot.txt.

Wenn dies der Fall ist, verschieben Sie Ihr Skript an einen Ort, der seit dem Booten vorhanden ist, beispielsweise nach / usr / local, und testen Sie es erneut.