Problem mit Crontab

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
raver93
Beiträge: 9
Registriert: 09.06.2009 10:43:45

Problem mit Crontab

Beitrag von raver93 » 09.06.2009 10:45:34

Hallo!
Ich habe ein Problem mit den Crontab's.
Die werden einfach nicht ausgeführt...
Das hab ich in "crontab -e"

Code: Alles auswählen

0 6 * * 1,2,3,4,5,6,7 root /home/crontab/restart.sh
5 6 * * 1,2,3,4,5,6,7 root /home/crontab/crontab.sh
38 10 * * 1,2,3,4,5,6,7 root /home/crontab/restart.sh
40 10 * * 1,2,3,4,5,6,7 root /home/crontab/crontab.sh
Er startet sie aber einfach nicht. Rechte sind auf 777 gesetzt und es ist ein V-Server von 1&1.
Ich hoffe ihr könnt mir helfen...

MFG
Raver

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Re: Problem mit Crontab

Beitrag von Snoopy » 09.06.2009 10:54:31

Hi,

und willkommen im Forum! :)

Zum Thema:
Ist an der Crontab eine Leerzeile am Ende?

Wird den Skripten das dementsprechende Environment mitgegeben? Ein Cronjob ist etwas anderes als ein Skript das man auf der Shell ausführt.

Wenn die Befehle von Root ausgeführt werden sollen, warum legst Du die dann nicht mit dem Root-User und

Code: Alles auswählen

crontab -e
an?

raver93
Beiträge: 9
Registriert: 09.06.2009 10:43:45

Re: Problem mit Crontab

Beitrag von raver93 » 09.06.2009 11:47:15

Hi!
Danke für die schnelle Antwort.
Ich habe den User mit root angelegt.
Am ende ist keine Leerzeile.
Außerdem sind sie ja mit crontab -e angelegt :mrgreen:
hab nur halt das Problem das ich das um 10:38 versucht habe auszuführen bzw hab den crontab um 10:30 angelegt um zu probieren ob es klappt da ich immer morgens um 6 uhr ganz gerne den server restartet haben will :D

Hoffe du kannst weiterhelfen
MFG
Raver

Benutzeravatar
stollenreiter
Beiträge: 402
Registriert: 10.08.2004 16:30:47
Wohnort: Bremen

Re: Problem mit Crontab

Beitrag von stollenreiter » 09.06.2009 12:02:37

Hallo.

Wenn mich nicht alles täuscht, dann kannst du dir das "1,2,3,4,5.." schenken. So wie ich das sehe, willst du den Server täglich neu starten, also reicht auch hier ein "*".

Ist zwischen den Einstellungen denn auch immer ein TAB?

Also so sieht das bei mir aus

Code: Alles auswählen

# m h  dom mon dow   command
0 13|->* * 4|->sh /opt/scripte/hole_info_mail.sh
|-> = Tab-Taste

Ich hatte auch mal ähnliche Probleme mit cron. Seit ich aber immer TABS statt Leerzeichen nutze klappts immer.
Gruß Stollenreiter
wat mutt, dat mutt
Mein Jakobsweg heißt Darb al-Arba'in

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Re: Problem mit Crontab

Beitrag von Snoopy » 09.06.2009 12:02:55

Hi,

naja ich verstehe es nicht so ganz.
Wenn die Skripte als Root-User laufen sollen, kann man meines Erachtens auch gleich bei dem Root-User ein

Code: Alles auswählen

crontab -e
machen. Dann muss der ganze Userkrams nicht mehr angegeben werden.

Weiterhin solltest Du beachten, dass in der Crontab am Ende eine Leerzeile vorhanden ist.

Das Environment für einen Cronjob ist nicht dasselbe als das eines Users der sich auf der Shell anmeldet!
Soll heissen, man sollte die Befehle entweder mit absolutem Pfad angeben, oder Suchpfade am Anfang des Skriptes mitgeben.
Bsp:

Code: Alles auswählen

#!/bin/sh

# Pfade setzen damit Cron nicht im dunkeln herumlaeuft...
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/bin/X11: 

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: Problem mit Crontab

Beitrag von nepos » 09.06.2009 12:57:53

Sicher, dass du in einer User-Crontab einen anderen User angeben kannst, als der die Jobs laufen?
Wäre ja nicht sonderlich sicher, wenn User XYZ einfach mal Cronjobs einstellen dürfte, die dann als root laufen ;)

Die Angabe von Usernamen ist nur in der /etc/crontab und den Dateien unter /etc/cron.d und Co ok.

Einfacher Test in einer crontab für einen normalen User:

Code: Alles auswählen

* * * * *  root echo "foo"
Führt zu einer Mail:

Code: Alles auswählen

/bin/sh: root: command not found
Es gibt also keine User-Spalte in einer User-Crontab!
Wenn es als root laufen muss, dann als root crontab -e machen und die Spalte mit root weglassen oder direkt in die /etc/crontab eintragen!

raver93
Beiträge: 9
Registriert: 09.06.2009 10:43:45

Re: Problem mit Crontab

Beitrag von raver93 » 09.06.2009 16:05:10

Hallo!
Danke für eure Hilfe!
Hab es jetzt mit

Code: Alles auswählen

2       16      *       *       *       echo "test"
ausprobiert und in der /var/mail/root war jetzt eine meldung:

Code: Alles auswählen

Date: Tue, 9 Jun 2009 16:02:01 +0200
Message-Id: <200906091402.n59E21Fo023803@AUSGEBLENDET>
From: root@AUSGEBLENDET (Cron Daemon)
To: root@AUSGEBLENDET
Subject: Cron <root@AUSGEBLENDET> echo "test" 
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Also stimmt alles :D
Mein Server müsste dann morgen früh um 6 Uhr restarten... Ich werde euch dann nochmal bescheid geben obs soweit alles geklappt hat :mrgreen:
Danke noch einmal Super Forum! :hail:

MFG
Raver

raver93
Beiträge: 9
Registriert: 09.06.2009 10:43:45

Re: Problem mit Crontab

Beitrag von raver93 » 11.06.2009 06:56:20

Sorry das ich mich gestern nicht mehr gemeldet habe!
Aber es funktioniert jetzt alles! Der Server startet morgens um 6 Uhr wegen der reboot.sh neu und um 6:02 Uhr startet er unseren teamspeak und die counter strike server!
Natürlich mit "su" damit sie nicht unter root laufen :D
Danke noch einmal an alle die mitgewirkt haben!

MFG
Raver

dingsda
Beiträge: 95
Registriert: 10.06.2009 23:45:50

Re: Problem mit Crontab

Beitrag von dingsda » 11.06.2009 07:10:10

Fein das es nun funktioniert :D Eine nette Sammlung zu cron gibts hier http://sunoano.name/ws/public_xhtml/time.html ... Ich muss die Syntax auch immer wieder einmal nachschlagen daher ist es gut wenn man ein "Nachschlagewerk" hat :wink:

yeti

Re: Problem mit Crontab

Beitrag von yeti » 11.06.2009 08:29:13

raver93 hat geschrieben:Aber es funktioniert jetzt alles!
Dann markier den Thread doch mal mit "[gelöst]" in der Betreffzeile und laß'n Sektkorken plöppen...

raver93
Beiträge: 9
Registriert: 09.06.2009 10:43:45

Re: Problem mit Crontab

Beitrag von raver93 » 14.06.2009 11:07:52

Hallo!
Gibt leider ein Problem...
User root hat den Crontab:

Code: Alles auswählen

0       6       *       *       *       reboot
Aber es funktioniert nicht er startet nicht um 6 Uhr neu!
Wisst ihr worans liegt?

MFG
Raver

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Re: Problem mit Crontab

Beitrag von Snoopy » 14.06.2009 16:16:39

Hi,
Snoopy hat geschrieben:Ein Cronjob ist etwas anderes als ein Skript das man auf der Shell ausführt.
Snoopy hat geschrieben:Das Environment für einen Cronjob ist nicht dasselbe als das eines Users der sich auf der Shell anmeldet!
Soll heissen, man sollte die Befehle entweder mit absolutem Pfad angeben, oder Suchpfade am Anfang des Skriptes mitgeben.
Bsp:

Code: Alles auswählen

#!/bin/sh
# Pfade setzen damit Cron nicht im dunkeln herumlaeuft...
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/bin/X11: 
ergo:

Code: Alles auswählen

0 6 * * * /sbin/reboot
Ich hoffe, dass Du an die Leerzeile in der Crontab gedacht hast...

raver93
Beiträge: 9
Registriert: 09.06.2009 10:43:45

Re: Problem mit Crontab

Beitrag von raver93 » 14.06.2009 16:31:51

Hi!
Gut das ich das nun weiß also ich habe mir nen shell-script gemacht das ich als befehl nur noch "rechte" schreiben muss dann muss ich also

Code: Alles auswählen

/bin/rechte
in die shell mit reinschreiben ja?

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Re: Problem mit Crontab

Beitrag von Snoopy » 14.06.2009 18:31:38

Hi,

das habe ich nun nicht verstanden...wie /bin/rechte...

Die Befehle die von einem Cronjob aufgerufen werden, müssen mit absolutem Pfad angegeben werden, da Cron nicht weiss wo die Befehle stehen.
Er kann mit dem Befehl reboot nix anfangen...
Man muss ihm genau sagen, das er /sbin/reboot ausführen soll.

Wenn man ein Skript per Cronjob aufruft, ist es dasselbe.
Es sei denn, man gibt die Suchpfade im Skript mit an...oben habe ich ein Beispiel gehabt.

Antworten