#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? + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren