Cronjob startet nicht, manuelles Script funktioniert

Bash, Shell, PHP, Python, Perl, CGI
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Cronjob startet nicht, manuelles Script funktioniert

Post by TDS »

Mein Crontab:

Code: Select all

*/1 * * * *	root /home/tds/tdk/webapps/heartbooker/cron.sh &> /cron1.info &
Mein Shell-Script:

Code: Select all

#!/bin/sh

if [ "$UID" != 0 ]; then
 echo "error: You must be root to use this program!"
 exit 1
fi

wget http://sydney:8080/heartbooker/servlet/heartbooker/template/CronJob.vm &> /cron2.info &
Was ist falsch?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by captaincrunch »

1. In welche crontab hast du das ganze eingebaut?
2. Wozu schickst du die Prozesse im Cronjob per "&" in den Hintergrund?
3. Wieso benutzt du keine absoluten Pfade im Script?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by TDS »

CaptainCrunch wrote:1. In welche crontab hast du das ganze eingebaut?
/etc/crontab
CaptainCrunch wrote:2. Wozu schickst du die Prozesse im Cronjob per "&" in den Hintergrund?
Nun ja, die Ausgabe wird ja zu Testzwecken in /cron1.inf und /cron2.info umgeleitet.
CaptainCrunch wrote:3. Wieso benutzt du keine absoluten Pfade im Script?
wo?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by captaincrunch »

Nun ja, die Ausgabe wird ja zu Testzwecken in /cron1.inf und /cron2.info umgeleitet.
Ich rede aber vom zweiten "&". ;)
wo?
s#wget#/usr/bin/wget#
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by TDS »

Das wget mit URL muss sein das wir Turbine benutzen. Und damit wir einfach auf die DB zugrifen können wird das Script über Turbine aufgerufen. Wenn ich dir cron.sh manuell aufrufe funktioniert es ja...
Soll ich das zwei & wegnehmen. Glaube aber nicht das es damit funktioniert...
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by TDS »

CaptainCrunch wrote:
wo?
s#wget#/usr/bin/wget#
Also absolute Pfade in der cron.sh? Habe nun das & entfernt -> funktioniert nicht.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by captaincrunch »

Also absolute Pfade in der cron.sh?
Sage ich dich die ganze Zeit... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by TDS »

So in etwa?
/etc/crontab

Code: Select all

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
14 4  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
29 4  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
44 4  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly

# m h dom mon dow user cmd
*/1 * * * *	root /home/tds/tdk/webapps/heartbooker/cron.sh &> /cron1.info
cron.sh

Code: Select all

#!/bin/sh

if [ "$UID" != 0 ]; then
 echo "error: You must be root to use this program!"
 exit 1
fi

/usr/bin/wget http://sydney:8080/heartbooker/servlet/heartbooker/template/CronJob.vm &> /cron2.info
#>/dev/null 2>&1
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Cronjob startet nicht, manuelles Script funktioniert

Post by TDS »

Shell-Script läuft, Cronjob auch.

Problem: normaler Cronjob hat keine root-Rechte...

Lösung: Ausgabe in ein Verzeichnis wie z.B. Home (~).
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

PROBLEM

Post by TDS »

Habe nun probiert die Testversion als Final auf den Server zu schieben. Dort läuft Fedora Core 2. Und nun läuft der Cronjob trotzdem nicht. Wieso? cron.sh schiebt sienen Output nach /tmp. tmp hat die Rechte 777, jeder darf schreibe, ausführen, etc. Was kann falsch sein?