Autor Zpráva
ja99
Profil *
Ahoj, mam nastaveny tento cronjob:

*/59 * * * * root php -q /var/scipt/cron_test.php

Kazdych 59 minut se spusti skript ktery zapise do logu cas a datum spusteni:

01-08-2013 00:00:01
01-08-2013 00:59:01
01-08-2013 01:00:01
01-08-2013 01:59:01
01-08-2013 02:00:01
01-08-2013 02:59:01
01-08-2013 03:00:01
01-08-2013 03:59:01
01-08-2013 04:00:02
01-08-2013 04:59:01
01-08-2013 05:00:01
01-08-2013 05:59:01
01-08-2013 06:00:01
01-08-2013 06:59:01
01-08-2013 07:00:01
01-08-2013 07:59:01
01-08-2013 08:00:01
01-08-2013 08:59:01
01-08-2013 09:00:02

Z logu vidite ze se cron spusti spatne napr. 01-08-2013 00:59:01 (OK) ale pak hned 01-08-2013 01:00:01 kdy uz by se nemel spustit protoze se ma spoustet pouze kazdych 59 minut.

Kde je chyba? Diky
Joker
Profil
ja99:
Protože to */59 se nepřetočí do další hodiny. Ono to vlastně neznamená „59 minut od předchozího běhu“, ale spíš „v kterékoliv minutě dané hodiny a pak v každé, která bude o 59 víc než předchozí běh.“ Což právě dá výsledek každou hodinu v .00 a .59.

Jak udělat CRON spouštěný každých 59 minut upřímně řečeno nevím.
ja99
Profil *
Joker:
Fajn, díky za info. V tomto případě by se asi musela dát celá hodina 0 */1 * * *
Joker
Profil
ja99:
To mi přijde jako nejjednodušší řešení, dát to na celou hodinu.

Jinak podobné CRONy jsem viděl rozdělené na víc úloh, např. CRON každých 45 minut udělaný jako první CRON 0,45 0,3,6,9,12,15,18,21 * * * (tj. se spustí v 0.00, 0.45, 3.00, 3.45, atd.) druhý CRON s 30 1,4,7,10,13,16,19,22 * * * (spustí se ve vyjmenované hodiny v .30) a třetí CRON s 15 2,5,8,11,14,17,20,23 (ve vyjmenované hodiny v .15) - a ta kombinace dohromady spustí úlohu každých 45 minut.
Ale spouštění každých 59 minut tímhle způsobem udělat nejde, resp. by to prakticky byla jedna úloha pro každé jedno spuštění.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: