Fórum Ubuntu CZ/SK

Ostatní => Ubuntu Server => Téma založeno: ruenix 28 Června 2011, 22:41:41

Název: Cron spouští skript víc než má
Přispěvatel: ruenix 28 Června 2011, 22:41:41
V cronu mám následující záznam:
Kód: [Vybrat]
5 10,17 * * * wget --quiet --delete-after http://www.domena.cz/admin/import/admin.php?php=necoočekával bych, že se tento příkaz pustí dvakrát denně v 10:05 a 17:05, jenže log domény vypadá následovně:
Kód: [Vybrat]
stale_stejna_ip - - [28/Jun/2011:10:04:59 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 510 "-" "Wget/1.12 (linux-gnu)"
stale_stejna_ip - - [28/Jun/2011:10:20:00 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 499 "-" "Wget/1.12 (linux-gnu)"
stale_stejna_ip - - [28/Jun/2011:10:35:02 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 510 "-" "Wget/1.12 (linux-gnu)"
stale_stejna_ip - - [28/Jun/2011:11:35:22 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 453 "-" "Wget/1.12 (linux-gnu)"
stale_stejna_ip - - [28/Jun/2011:10:50:06 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 500 "-" "Wget/1.12 (linux-gnu)"
stale_stejna_ip - - [28/Jun/2011:11:05:10 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 510 "-" "Wget/1.12 (linux-gnu)"
stale_stejna_ip - - [28/Jun/2011:11:20:16 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 510 "-" "Wget/1.12 (linux-gnu)"
stale_stejna_ip - - [28/Jun/2011:17:05:00 +0200] "GET /admin/import/admin.php?php=neco HTTP/1.0" 200 453 "-" "Wget/1.12 (linux-gnu)"
Jinými slovy ten wget se spustil vícekrát než měl. Kontroloval jsem všechny příkazy, které cron spouští, ale tenhle php skript opravdu volá jen ten jediný.
možná důležitou poznámkou je, že podle kodéra ten skript může běžet až půl hodiny (limity php jsou podle toho nastavené).

Zkoušel jsem všude možně hledat, ale nenašel jsem nic co by toto vysvětlovalo. Napadlo mě jestli cron po 15 minutách běhu příkaz nespustí znova, ale nikde jsem pro tuhle teorii nenašel potvrzení.

Jinak na serveru s cronem je 10.04 a na serveru, kde ten skript běží je 10.10.
Název: Re: Cron spouští skript víc než má
Přispěvatel: starenka 28 Června 2011, 22:57:28
Hmm... zajimavy, ten zapis je imo ok

zkus izolovat jednotlivy vrstvy:
- stejny nastavena lajna touchne, nebo vytvori soubor (zjistis, jestli blbne cron)
- wget na jiny url, ktery nebude casove narocny napr. <?php echo 'hello world';?>
- zjistit, jestli nejakou zahadou webserver (apache?) nema nastavenej casovej limit na request (ale ze by wget sam od sebe resetly spojeni zkusil znovu... to jsem teda linej hledat)

obecne:
bejva lepsi balit krony do shell skriptu
neni dobry wgetovat soubor pres webserver (uz jen kvuli tomu, ze pak nastavujes limit skriptu pro celou domenu/server) - lepsi je to poustet pres cli primo na serveru
Název: Re: Cron spouští skript víc než má
Přispěvatel: ruenix 28 Června 2011, 23:04:52
Teda jen co jsem to napsal mě napadlo, že by ještě problém mohl být přímo v tom wgetu, že prostě zavolá adresu, 15 minut nedostane odpověď, tak to zkusí znova.
EDIT:
Tak je to přesně tím, celý den nad tím přemýšlím a hned jak napíšu dotaz mi to dojde, takže řešením bude wget -t 1
Název: Re: Cron spouští skript víc než má
Přispěvatel: daysleeper 28 Června 2011, 23:15:53
wget
Citace
--read-timeout=seconds
           Set the read (and write) timeout to seconds seconds.  The "time" of this timeout refers to idle time: if, at any point in the download, no data
           is received for more than the specified number of seconds, reading fails and the download is restarted.  This option does not directly affect
           the duration of the entire download.

           Of course, the remote server may choose to terminate the connection sooner than this option requires.  The default read timeout is 900 seconds.

--tries=number
           Set number of retries to number.  Specify 0 or inf for infinite retrying.  The default is to retry 20 times, with the exception of fatal errors
           like "connection refused" or "not found" (404), which are not retried.

Název: Re: Cron spouští skript víc než má
Přispěvatel: ruenix 28 Června 2011, 23:20:23
JJ přesně na tohle jsem narazil, ale byl trochu problém s uvědoměním si, že 900 sekund je 15 minut  ;D