tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1647
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    NTDY NTDY ist offline Mitglied Gold
    Registriert seit
    Mar 2004
    Ort
    no-comment
    Beiträge
    136
    Müssen cronjob Unterskripteskripte absoluten Pfad besitzen?

    Ich rufe in meinem cron ein perl Skript auf, das jeden Tag Aufgaben wie Datenbankbackup, Quotacheck, Log Datei Auswertung usw. übernimmt.

    Code :
    1
    
    30      6       *       *       *    /usr/bin/perl /root/skripte/mainscript.pl

    Innerhalb dieser Perl Datei werden andere Unterskripte aufgerufen. Eines davon wird beispielsweise mit

    Code :
    1
    
    system("/usr/bin/php5 /root/skripte/unterskripte/sendemail.php test@muster.de");

    Innerhalb dieser sendemail.php Datei rufe ich eine Datei "datum.txt" auf, die ausgelesen werden soll. Diese Datei "datum.txt" befindet sich unter /root/skripte/.
    Wenn ich diese Datei innerhalb von sendemail.php als relativen Pfad aufrufe, funktioniert das Skript nicht, sendemail.php findet diese Datei nicht. Wenn ich die Datei jedoch als absoluten Pfad aufrufe, funktioniert diese.

    Relative Pfade, die getestet wurden:
    Code :
    1
    2
    3
    4
    
    "datum.txt"
    "../datum.txt"
    "./datum.txt"
    "/datum.txt"

    Absoluter Pfad, der funktioniert
    Code :
    1
    
    "/root/skripte/datum.txt"

    Kann mir jemand sagen, wie diese Phänomen zustande kommt? Brauchen alle Skripte, sowie Unterskripte, die von cron abgearbeitet werden immer absolute Pfade, oder ist meine Skriptidee falsch?
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von NTDY Beitrag anzeigen
    Kann mir jemand sagen, wie diese Phänomen zustande kommt? Brauchen alle Skripte, sowie Unterskripte, die von cron abgearbeitet werden immer absolute Pfade, oder ist meine Skriptidee falsch?
    Warum "Phänomen"? Relative Pfade sind relativ zum Arbeitsverzeichnis wo das Programm gestartet wurde. Das Arbeitsverzeichnis kann man intern im Programm mit chdir ändern.

    Standardmäßig werden cron-Jobs im HOME Verzeichnis des Benutzers gestartet der den Job eingerichtet hat. Wenn du es als root einrichtest, folglich in /root. D.h. mit einem relativen Pfad skripte/datum.txt sollte es funktionieren. Du kannst natürlich auch in cron explizit ein HOME Verzeichnis mit der HOME Variablen angeben.
    Zitat Zitat von NTDY Beitrag anzeigen
    Relative Pfade, die getestet wurden:
    Code :
    1
    2
    3
    4
    
    "datum.txt"
    "../datum.txt"
    "./datum.txt"
    "/datum.txt"
    /datum.txt ist kein relativer Pfad.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Absoluten, lokalen Pfad auslesen
    Von exxe im Forum PHP
    Antworten: 11
    Letzter Beitrag: 15.04.09, 12:44
  2. Antworten: 3
    Letzter Beitrag: 06.03.09, 00:24
  3. absoluten Pfad auslesen
    Von Michelle85 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 11.02.09, 15:03
  4. ext. Datei mit absoluten Pfad ausführen
    Von TheVinc im Forum PHP
    Antworten: 7
    Letzter Beitrag: 27.03.06, 15:17
  5. JSP: absoluten Pfad erfragen
    Von Der Held im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 4
    Letzter Beitrag: 04.11.05, 21:23

Stichworte