PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Debian: Webserver soll cronjob starten



mordur
05.12.07, 15:45
moins,

ich habe einen Apache unter Debian 4.0 "etch".
Von einer HTML-Seite angeschubst, soll ein Perlskript einen Cronjob starten,
der jede Minute ausgeführt wird.
Unter Suse hab ich das hinbekommen, aber unter Debian nicht.
Ich habe das Skript eine Datei unter /var/spool/cron/crontabs anlegen lassen, die heisst wie der Apache "www-data". Darin steht:

* * * * * /bin/bash/ /srv/www/cgi-bin/irgendeinskript.sh
Dann mach ich "sudo /etc/init.d/cron reload" aus dem Skript heraus und
er meckert auch nicht rum.
Im syslog steht sowas:

Dec 5 10:30:20 cableadminForst /usr/sbin/cron[8438]: (CRON) INFO (pidfile fd = 3)
Dec 5 10:30:20 cableadminForst /usr/sbin/cron[8439]: (CRON) STARTUP (fork ok)
Dec 5 10:30:20 cableadminForst /usr/sbin/cron[8439]: (www-data) WRONG INODE INFO (crontabs/www-data)
Dec 5 10:30:20 cableadminForst /usr/sbin/cron[8439]: (CRON) INFO (Skipping @reboot jobs -- not system startup)

wie krieg ich das hin?

MiGo
05.12.07, 20:24
Dec 5 10:30:20 cableadminForst /usr/sbin/cron[8439]: (www-data) WRONG INODE INFO (crontabs/www-data)
Eine kurze Suche ergibt:
Debain mag es anscheinend nicht, wenn man die Datei einfach so anlegt ("wer weiss, wo's herkommt!") sondern besteht drauf, das Editieren über "crontab -e" zu machen.

Alternative:
Bau dir einen Cron-Job, der jede Minute nachsieht, ob eine bestimmte Datei im Webserver-Verzeichnis da ist ("if [ -f /var/www/RunScript.txt ]") und wenn ja, dein gewünschtes Script ausführt. Wenn nein, bricht er halt einfach ab.
Die Datei legst du einfach vom Webserver aus an.

Das hat auch den Vorteil, dass deine Scripte nicht mit sudo auf der Platte rumbasteln müssen - wenn man sowas hat, kommt man ganz schnell auch auf die dumme Idee, dem Script eigentlich Daten aus Nutzereingaben mitgeben zu können :)