Forum: PC-Programmierung Cronjob startet nicht


von Jan L. (jan_l)


Lesenswert?

Hey =)

Ich will grade einen Cronjob unter Linux Debian hinzufügen bzw hab ich 
einen hinzugefügt, der eigendlich einen Script jede minute ausführen 
soll...

sieht so aus   *   /home/pi/Desktop/script.sh

leider wird der script nicht ausgeführt...

(Funktionieren tut der Skript)
(hab es auch schon mit 0   * * versucht leider auch erfolg los...)

mit contab -e hab ich den job hinzugefügt...

naja vielleicht hat hier ja jemand ne idee bzw weiß was ich falsch 
mache.

Viele Grüße

von Peter II (Gast)


Lesenswert?

Jan L. schrieb:
> naja vielleicht hat hier ja jemand ne idee bzw weiß was ich falsch
> mache.

viel zu wenig *

http://www.adminschoice.com/crontab-quick-reference

von Jan L. (jan_l)


Lesenswert?

öhm

                 *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

ups wenn ich hier 5 * hintereinander mach fasst er das zu einem zusammen 
...

also ich hab 5 x *

von Lukas K. (carrotindustries)


Lesenswert?

Dein Skript ist als ausführbar markiert? (chmod +x)
Ansonsten: Seh' mal in die logs

von Jan L. (jan_l)


Lesenswert?

jap
und wenn ich ihn einfach, zb so "/home/pi/Desktop/script.sh" ausführ 
geht er auch

von tdd (Gast)


Lesenswert?

Jan L. schrieb:
> ups wenn ich hier 5 * hintereinander mach fasst er das zu einem zusammen
> ...
Ja, * ist in diesem Forum das Sonderzeichen für Fettdruck...

von adsf (Gast)


Lesenswert?

Für die Zukunft: in [code]-Blöcken wird das * nicht als Markierung für 
Fettschreiben interpretiert und angezeigt.
Ansonsten mal ganz trivial: cron läuft auch? script ist ausführbar und 
verlässt sich nicht auf irgendeine Umgebung (z.b. ne andere Shell als 
cron nutzt)?

von Jan L. (jan_l)


Lesenswert?

ahhh "cron läuft auch" ... muss man das etwa irgendwie "anschalten" ?
das wäre natürlich eine erklärung XD

ps.: ein restart von cronjob hats auch nicht gelöst

von Tux (Gast)


Lesenswert?

Zeig uns mal Dein Script ...

von Jan L. (jan_l)


Lesenswert?

1
# 19.01.2013
2
3
gpio -g mode 4 out  # setzt GPIO 4 als output
4
5
gpio -g write 4 1
6
7
sleep 30
8
9
gpio -g write 4 0



soll auf meinem raspberry pi eine led für 30 sek zum leuchte bringen
also das macht der skript auch.

von Lukas K. (carrotindustries)


Lesenswert?

Jan L. schrieb:
> ahhh "cron läuft auch" ... muss man das etwa irgendwie "anschalten" ?
> das wäre natürlich eine erklärung XD
haha, wie witzig

Bei praktisch jedem Linux-System läuft cron eh, für updatedb u.ä.

ps aux | grep cron

Wie bereits gesagt, seh' mal in den Logs nach, ob cron überhaupt was 
tut.

von Jan L. (jan_l)


Lesenswert?

also ich geh jetzt erst mal ins kino xD
aber den befehl für die logs hatte ich auch schon mal gesehn das werd 
ich auf jeden fall mal testen

von tdd (Gast)


Lesenswert?

Fehlt da nicht der/die/das Shebang? Woher soll das System wissen womit 
das ausgeführt werden soll.

von Georg A. (georga)


Lesenswert?

Ist gpio auch im Suchpfad, wenn es vom cron aus gestartet wird? Gib mal 
lieber den ganzen Pfad an...

von llllllöps (Gast)


Lesenswert?

tdd schrieb:
> Fehlt da nicht der/die/das Shebang? Woher soll das System wissen womit
> das ausgeführt werden soll.

Ja.

Das Skript muss anfangen mit z.B.

#!/bin/sh

sonst weiss Cron nicht, was es damit tun soll.

Ebenso ist der Hinweis auf den Suchpfad gut. Im Zweifel lieber den 
absoluten Pfad angeben.

von Jan L. (jan_l)


Lesenswert?

ahh ich dachte #!/bin/sh kommt nur an den Anfang damit der Benutzer weiß 
was los is, da es ja auskommeniert is. Aber das is natürlich ein versuch 
wert.

von adsf (Gast)


Lesenswert?

Nein, das ist ein Standard dort den Pfad anzugeben, damit das aufrufende 
Programm/Shell rausfinden kann welchem Interpreter die Datei zu 
übergeben ist. In python-Programmen würde z.b. oben #!/bin/env python 
oder so ähnlich stehen.

von bluppdidupp (Gast)


Lesenswert?

Ich würde einfach bei crontab -e die Ausgabe deines Skripts noch in eine 
Textdatei packen lassen:
http://en.linuxreviews.org/Redirect_all_shell_output_to_a_single_file
...dann sollte er sämtliche Ausgaben deines Skripts in die angegebene 
Datei reinloggen.

von Jan L. (jan_l)


Lesenswert?

so lösung gefunden...

mit crontab -e komm ich irgendwie nicht in die richtige Datei. Wenn ich 
nämlich etc/crontab öffne steht da erstmal was ganz anderes drin... naja 
und wenn ich da meinen job hinzufüg funktioniert der auch

von Lukas K. (carrotindustries)


Lesenswert?

Jan L. schrieb:
> etc/crontab öffne steht da erstmal was ganz anderes drin..

Soll es auch. Die /etc/crontab ist systemweit. Für benutzereigenen 
cronjobs gibt's crontab -e, was deine crontab in /var/spool/cron 
pflanzt.

von Alexander F. (alexf91)


Lesenswert?

Lukas K. schrieb:
> Jan L. schrieb:
>> etc/crontab öffne steht da erstmal was ganz anderes drin..
>
> Soll es auch. Die /etc/crontab ist systemweit. Für benutzereigenen
> cronjobs gibt's crontab -e, was deine crontab in /var/spool/cron
> pflanzt.

Als welcher User werden die benutzerspezifischen cronjobs ausgeführt?
Vielleicht handelt es sich ja um ein Berechtigungsproblem.

von Lukas K. (carrotindustries)


Lesenswert?

Alexander F. schrieb:
> Lukas K. schrieb:
>> Jan L. schrieb:
>>> etc/crontab öffne steht da erstmal was ganz anderes drin..
>>
>> Soll es auch. Die /etc/crontab ist systemweit. Für benutzereigenen
>> cronjobs gibt's crontab -e, was deine crontab in /var/spool/cron
>> pflanzt.
>
> Als welcher User werden die benutzerspezifischen cronjobs ausgeführt?
> Vielleicht handelt es sich ja um ein Berechtigungsproblem.

Als der Benutzer, dem die entsprechende crontab gehört. Wenn ich als 
'lukas' meine crontab mit crontab -e bearbeite, werden meine cronjobs 
auch als 'lukas' ausgeführt. Aber da wir ja immer noch keine logs von TO 
haben, können wir hier nur im trüben stochern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.