Crontab Problem (Erstellung einer TMP im Root Verzeichnis)

Dieses Thema im Forum "Linux & BSD" wurde erstellt von uRph03n1x, 4. September 2010 .

  1. 4. September 2010
    Hallo,

    ich bin langsam echt am Verzweifeln.
    Ich habe eine php Datei auf dem Server (Debian lenny) in der ein Script enthalten ist. Dieses Script soll alle 2 min per Cronjob aufgerufen werden. Funktioniert auch alles soweit ganz gut, nur leider wird im /root Verzeichnis bei jedem Crontab Aufruf eine durchnummerierte Kopie (ohne Inhalt) der Datei angelegt. Habe es mit 3 Varianten probiert.

    Meine /etc/contab Datei sieht wie folgt aus:

    Code:
    # 999 */1 * * * * root wget -0 /dev/null http://localhost/web1/modsys/cron_dbupdate.php >> /dev/null 2>&1
    
    # 999 */1 * * * * root /usr/bin/php /var/www/web1/modsys/cron_dbupdate.php
    
    999 */1 * * * * root wget -dnh http://localhost/web1/modsys/cron_dbupdate.php >> /dev/null 2>&1
    Zur Sicherheit starte ich den cron-daemon noch jedesmal mit /etc/init.d/cron restart neu.

    Die anderen Befehle habe ich auskommentiert, das sind die, die ebenfalls zwar das Script ausgeführt haben, aber immer im /root ne Datei angelegt haben.

    Was mache ich falsch? Falscher Wget Parameter? Falscher Cron Parameter?


    // edit

    Kommt mir nicht, wie mein Kollege, mit der Lösung von wegen nen 2. Cronjob anlegen der alle 30 min die angelegten Dateien löscht ^^. Brauch ne saubere Lösung



    ================


    Fehler gefunden!

    Hallo,

    ich habe meinen Fehler nun gefunden. Meine Änderungen in der /etc/crontab haben einfach nichts gebracht. Das Script hat einfach aus dem Grund funktioniert, weil ich den Cronjob damals über crontab -e im System eingetragen habe, und dafür ist eine andere Datei verantwortlich als die in /etc.

    Verantwortlich bei mir ist die Datei /var/spool/cron/crontabs/root. Dort habe ich nun die saubere Lösung mit dem
    Code:
    */1 * * * * root /usr/bin/php /var/www/web1/modsys/cron_dbupdate.php
    eingetragen.

    Was wird aber in der /etc/crontab gespeichert?
     
  2. 5. September 2010
    AW: Crontab Problem (Erstellung einer TMP im Root Verzeichnis)

    Ahoi,

    sry aber dort trägst du nichts ein. Die Datei sollte (aus einem solchen Grund) nicht geändert werden. Wenn du einen cronjob aufrufen möchtest, tu das, wie du bereits richtig sagtest, per crontab -e.

    Wenn du unbedingt selbst /etc/crontab editieren willst (Warum eigentlich?), schau dir die vorhanden Einträge an.
    Code:
    # /etc/crontab: system-wide crontab
    # Unlike any other crontab you don't have to run the `crontab'
    # command to install the new version when you edit this file
    # and files in /etc/cron.d. These files also have username fields,
    # that none of the other crontabs do.
    
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # m h dom mon dow user command
    17 * * * * root [COLOR="Red"]cd /[/COLOR] && run-parts --report /etc/cron.hourly
    25 6 * * * root test -x /usr/sbin/anacron || ( [COLOR="Red"]cd /[/COLOR] && run-parts --report /etc/cron.daily )
    47 6 * * 7 root test -x /usr/sbin/anacron || ( [COLOR="Red"]cd /[/COLOR] && run-parts --report /etc/cron.weekly )
    52 6 1 * * root test -x /usr/sbin/anacron || ( [COLOR="Red"]cd /[/COLOR] && run-parts --report /etc/cron.monthly )
    #
    
    Code:
    * * * * * root test -x /usr/sbin/anacron || ( [COLOR="Red"]cd /tmp[/COLOR] && /usr/bin/php -f /var/www/web1/modsys/cron_dbupdate.php )
    Das ist ungetest. Du solltest ggf. auch besser nach /tmp wechseln. Warum die Datei erzeugt wird, weiß ich nicht.

    In die Datei /var/spool/cron/crontabs/root solltest du niemals irgend etwas eintragen! Das ist eine dynamische Datei die regelmäßig überschrieben wird. Der Inhalt ist identisch zu crontab -e also trage den Aufruf dort ein.

    Weiterhin sehe ich es kritisch, dass du den cronjob überhaupt als root ausführst. Ist das zwingend notwendig? Führe ihn lieber im Kontext des Webservers aus crontab -u www-data -e oder halt mit dem Nutzer unterdem die Webseite läuft.


    greetz blackbone
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.