crontab aus einer CGI verfassen
SaT
- perl
grüsse,
ich brauche dringend hilfe... mein problem:
ich will aus einer perl-CGI heraus einen crontab verfassen, der ausführungszeitpunkte eines perl-script verändert...
ich habe ein file erzeugt in dem in cron-syntax die abfragezeitpunkte geschrieben werden und habe dann versucht mit:
system("crontab -u SaT ~/crono/cronfile")
den user-seitigen crondaemon damit zu ändern... aber die änderungen werden nicht übernommen...
prinzipiell weiß ich nichteinml ob das so funktionieren "könnte", also bin ich für jede hilfe dankbar....
exit(0);
mfg SaT
hallo,
ich will aus einer perl-CGI heraus einen crontab verfassen
nein, das willst du nicht. Du hast möglicherweise auf dem Server, an den dein Serverprogramm (Apache?) die Anforderung des CGI-Scripts weitergibt, eine Crontab liegen und möchtest einen Cronjob ausführen lassen, der in dieser Crontab festgeschrieben ist.
prinzipiell weiß ich nichteinml ob das so funktionieren "könnte
hm, und das kann es "normalerweise" eben nicht. Du mußt dir vergegenwärtigen, was dein Perl-Script macht, wenn es von einem HTML-Dokument aus aufgerufen wird: es setzt auf _Serverseite_ einen Prozeß in Gang - und das könnte auf _Serverseite_ durchaus auch ein Cronjob sein. Aber auf _Userseite_ macht dein PERL-Script - gar nix. Der User bekommt das Ergebnis der Arbeit zu sehen, die drin PERL-Script auf dem Server vollbracht hat, mehr nicht.
Außerdem: woher willst du denn wissen, daß das Betriebssystem deines Seitenbesuchers überhaupt cronjobs ausführen kann?
Grüße aus Berlin
Christoph S.
use Mosche;
ich will aus einer perl-CGI heraus einen crontab verfassen, der ausführungszeitpunkte eines perl-script verändert...
ich habe ein file erzeugt in dem in cron-syntax die abfragezeitpunkte geschrieben werden und habe dann versucht mit:
system("crontab -u SaT ~/crono/cronfile")
den user-seitigen crondaemon damit zu ändern... aber die änderungen werden nicht übernommen...
Mit "user-seitig" meinst du wohl die Crontab eines Serverseitigen Benutzers?
prinzipiell weiß ich nichteinml ob das so funktionieren "könnte", also bin ich für jede hilfe dankbar....
Folgendes Problem tritt auf:
Wenn der Webserver unter der Apache-Kennung läuft (oder einer beliebigen anderen, welche nicht 'SaT' oder 'root' ist), darf er nicht deine Crontab verändern. Das dürfen nur 'root' oder eben SaT. Was du machen kannst, wenn es dein eigener Server ist: du kannst dafür sorgen, daß der Prozeß unter deiner Kennung läuft ('root' wäre eine enorme Sicherheitslücke!). Anonsten müsstest du mit suid oder so arbeiten.
Wenn der Apache-Prozeß unter deiner Benutzerkennung läuft (lass dir einfach mal per CGI-Prog. ein File anlegen und überprüf die Rechte), dann musst du uns etwas mehr über deine Systemkonfiguration sagen.
use Tschoe qw(Matti);