Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Cron spouští skript víc než má  (Přečteno 2215 krát)

ruenix

  • Návštěvník
  • Příspěvků: 76
Cron spouští skript víc než má
« kdy: 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.
« Poslední změna: 28 Června 2011, 22:44:29 od ruenix »

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Cron spouští skript víc než má
« Odpověď #1 kdy: 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
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

ruenix

  • Návštěvník
  • Příspěvků: 76
Re: Cron spouští skript víc než má
« Odpověď #2 kdy: 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
« Poslední změna: 28 Června 2011, 23:13:45 od ruenix »

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: Cron spouští skript víc než má
« Odpověď #3 kdy: 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.


ruenix

  • Návštěvník
  • Příspěvků: 76
Re: Cron spouští skript víc než má
« Odpověď #4 kdy: 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

 

Provoz zaštiťuje spolek OpenAlt.