crontab-einträge laufen 20-fach

Status
Für weitere Antworten geschlossen.

Bezkeroon

Benutzer
Mitglied seit
06. Dez 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hi :)

ich bin - zumindest als Poster - neu hier im Forum und wollte Nachfragen ob mir von euch jmd bei meinem Problem helfen kann:

ich habe ein paar cronjobs nach dieser Anleitung eingerichtet: http://www.synology-wiki.de/index.php/Cron
So sieht meine crontab aus
Rich (BBCode):
#minute	hour	mday	month	wday	who	command
11	23	*	*	1,4	root	/usr/bin/php -n -d safe_mode_exec_dir='' /usr/syno/bin/autoupdate.php
40	21	*	*	3,6	root	/usr/syno/bin/synopkg chkupgradepkg
0	*	*	*	*	root	wget -q http://127.0.0.1/___cron.php?scanDirs=1
15	*	*	*	*	root	wget -q http://127.0.0.1/___cron.php?checkCacheFiles=1
20	*	*	*	*	root	wget -q http://127.0.0.1/___cron.php?cleanUp=1
#6-59	*	*	*	*	root	wget -q http://127.0.0.1/___cron.php?doQueue=1
#laeuft nicht pro minute, sondern alle 30s - warum auch immer
#erste 15 Minuten in der Stunde nur einen crontask, damit scanDirs mehr Ruhe hat
15-59	*	*	*	*	root	wget -q http://127.0.0.1/___cron.php?doQueue=1
15-59	*	*	*	*	root	wget -q http://127.0.0.1/___cron.php?doQueue=1
0-59	*	*	*	*	root	wget -q http://127.0.0.1/___cron.php?doQueue=1
45	4	*	*	*	root	wget -q http://127.0.0.1/___cron.php?cacheCleaner=1
13	*	*	*	*	root	/var/packages/Webalizer/target/bin/webalizer -c /var/packages/Webalizer/target/webalizer.conf


es läuft auch nur ein crond prozess und ich habe keine user-crontabs gefunden.
Trotzdem wird jede Zeile zwar zur richtigen Zeit (wobei anfangs minütliche Cronjobs alle 30s liefen ^^), aber gleich 20x ausgeführt...

Kennt jmd das Problem und weiss Abhilfe?

Viele Dank im Voraus

Bezkeroon

P.S.: habe eine DS412+
 
Zuletzt bearbeitet:

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118

Bezkeroon

Benutzer
Mitglied seit
06. Dez 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
nein, es soll jede Minute von 15-59 starten. und zweimal ist der eintrag drin, weil er zweimal starten soll.
in diesem fall wird der job aber 40x ausgeführt - jede Zeile 20x
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Bist du ganz sicher, dass der Queue Job auch wirklich in 60 Sec durch ist?
 

Bezkeroon

Benutzer
Mitglied seit
06. Dez 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
ach ja, was ich will:
ich habe ein php-skript, das verschiedene Aktionen durchführt. Durch den Cronjob will ich das zeitgesteuert aufrufen (was auch geht, nur wird zu oft aufgerufen ^^)
0 * * * * root wget -q http://127.0.0.1/___cron.php?scanDirs=1
scanDirs soll einmal zur vollen Stunde laufen

15 * * * * root wget -q http://127.0.0.1/___cron.php?checkCacheFiles=1
checkCacheFile jede Stunde + 15 Minuten (8:15, 9:15, ...)

20 * * * * root wget -q http://127.0.0.1/___cron.php?cleanUp=1
cleanUp jeder Stunde + 20 Minuten

15-59 * * * * root wget -q http://127.0.0.1/___cron.php?doQueue=1
15-59 * * * * root wget -q http://127.0.0.1/___cron.php?doQueue=1
0-59 * * * * root wget -q http://127.0.0.1/___cron.php?doQueue=1
Minütlich doQueue - der Prozess soll von Minute 15-59 3x parallel laufen, deswegen die doppelten Einträge

und zu guter letzt
45 4 * * * root wget -q http://127.0.0.1/___cron.php?cacheCleaner=1
um 4:45 täglich cacheCleaner

sollte ich das anders lösen? Also das ganze mehr PHP-Seitig steuern?
 

Bezkeroon

Benutzer
Mitglied seit
06. Dez 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Bist du ganz sicher, dass der Queue Job auch wirklich in 60 Sec durch ist?

ist er - ich habe das Skript am ende einfach nur einen logeintrag in die Datenbank machen lassen - mehr nicht (also quasi instant durch) - und dann gesehen (ebenso wie im access-log), dass jedes wget 20fach ausgeführt wird
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
hast du mal probiert ob es korrekt läuft wenn du nur einen der queue Job laufen hast? Also die anderen mal auskommentieren und dann alle laufenden Instanzen des PHP Scripts killen und am Schluss den cron neustarten. Btw was macht das PHP File? Öffnet es irgendwelche Files schreibend? Oder wirklich nur einen SELECT auf mysql?
Btw 2: Synology hat afaik php-cli mit an Bord. Ich würde das Script eher als CLI Script anlegen und dann auch via dem PHP Interpreter auf der Kommandozeile aufrufen. Da dürfte weniger Overhead sein, weil du nicht zusätzlich noch den Apache bemühen musst. Hat zwar wohl nichts mit deinem Problem zu tun, ist imho aber wohl performanter :)
Ich würde zudem überlegen ob du wirklich 3 parallele Instanzen des Scripts haben willst. Allenfalls wäre es sinnvoller das Script minütlich nur einmal aufzurufen und dann einfach im PHP Code das ganze in einer Schleife dreimal ausführen zu lassen
 
Zuletzt bearbeitet:

Bezkeroon

Benutzer
Mitglied seit
06. Dez 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
selbes ergebnis: dieser eine Eintrag wird 20 mal pro Minute ausgeführt ^^
und aktuell zum testen mache ich in dem Skript nichts außer einen Eintrag in eine Log-Tabelle der Datenbank
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Und dein cron Daemon läuft auch sicher nur einmal? Werden alle Jobs (auch jene von Syno) zu oft ausgeführt oder nur deine? Mal das Script mit denselben Parametern mit dem Browser aufgerufen? Wird dann auch 20-fach aufgerufen? Allenfalls mal ein PHP Testfile erstellen und sowohl im Browser als auch via cron aufrufen.
 

Bezkeroon

Benutzer
Mitglied seit
06. Dez 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
der cron daemon läuft nur einmal, jo ("ps" als root reicht, oder? auch im webUI der DS ist nur ein crond-prozess gelistet)
Wenn ich das ganze im Browser aufrufe wird es nur einmal ausgeführt (ein logeintrag in der datenbank)


hab das Problem gefunden - es ist nicht der CronJob, sondern wget, das mehrere requests parallel macht.
Habe jetzt auf curl umgestellt (CLI verursacht in weiterführenden Skripten aktuell Probleme) und es rennt wie erwartet.

Viele Dank trotzdem für die nette prompte Hilfe :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat