• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Cronjob (Perlscript kann Datei nicht öffnen)

olliD

Newbie
Hallo zusammen,

bin neu hier und habe auch gleich mal eine Frage:

Ähnlich wie bei

http://www.linux-club.de/viewtopic.php?t=45931

geht es auch mir .

Manuell auf Konsole gestartet läuft mein winziges Perlscript einwandfrei. Lege ich jedoch einen cronjob an bekomme ich immer folgende Fehlermeldung.

Subject: Cron <web5@p15137234> /home/www/web5/html/cgi-bin/counter.pl
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/www/web5>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=web5>
Message-Id: <20051116115201.32DF81C817F@p15137234.pureserver.info>
Date: Wed, 16 Nov 2005 12:52:01 +0100 (CET)

Cant open counter.logs at /home/www/web5/html/cgi-bin/counter.pl line 6.


und das obwohl die Dateirechte meines Erachtens korrekt gesetzt wurden:

-rw-rw-rw- 1 web5 ftponly 2 2005-11-16 01:46 counter.logs
-r-x------ 1 web5 ftponly 275 2005-11-16 00:41 counter.pl


Im Gegensatz zu dem oben angeführten Posting kann ich das Problem aber eben nicht beheben indem ich einfach einen cronjob für user 'web5" anlege. Egal ob für user 'web5' oder sogar bei 'root' erhalte ich immer diesen Fehlerhinweis.

Mein Crontab Eintrag sieht folgendermaßen aus:

*/2 * * * * /home/www/web5/html/cgi-bin/counter.pl

Hoffe Ihr könnt mir weiterhelfen. Danke


ciao Olli
 

regexer

Advanced Hacker
Ohne das perl-script genau zu kenn: Wahrscheinlich wird die Datei ohne Pfad geöffnet. Das geht solange gut, wie du im aktuellen Verzeichnis stehst (z.B. manuell mit der Konsole). Deswegen:
Entweder im Perl-Script die Datei mit Pfad öffnen oder in der cron vorher mit "cd /home/www/web5/html/cgi-bin/" das Verzeichnis wechseln. Letzeres funktioniert so:
Code:
*/2 * * * * cd /home/www/web5/html/cgi-bin && counter.pl
 
OP
O

olliD

Newbie
Danke, Du machst mich glücklich.
Mit ner absoluten Pfadangabe im Perlscript klappts dann auch mit dem Nachbarn. Ich wär da nie drauf gekommen, aber man lernt ja nie aus.

Ich bin immer davon ausgegangen, dass Pfadangaben immer von der Position des aufrufenden Scriptes aus betrachtet werden müssen. Sprich: Wenn sich ein script im Verzeichnis "/home/irgendwo" befindet, dann kann man auf eine Datei, die sich im gleichen Verzeichnis befindet direkt mit dem Dateinamen zugreifen (natürlich auch unter verwendung des absoluten Pfades).

OK, jetzt bin ich ja für die Zukunft schlauer

:D

ciao Olli
 

regexer

Advanced Hacker
olliD schrieb:
Ich bin immer davon ausgegangen, dass Pfadangaben immer von der Position des aufrufenden Scriptes aus betrachtet werden müssen.
Sorry, aber das wäre ja schlimm, wenn es so wäre. Zum Beispiel: Der Befehl "ls" ist ein Programm, dass im Verzeichnis /bin liegt. Wenn ich "ls irgendwas" eingeben würde, würde die Shell nach deiner Logik im Verzeichnis /bin nach "irgendwas" suchen. Das wäre umständlich ...
 
Oben