Autor | Zpráva | ||
---|---|---|---|
Jenicek Profil |
#1 · Zasláno: 11. 7. 2015, 07:38:47 · Upravil/a: Jenicek
jednoduchý kodík na zápis informací
$datum = date("d.m.Y H:i:s"); $soubora = fopen("lidi.txt", "r"); $lidi = fread($soubora, 5000); $vsechnylidi = "$datum $infoolidech \r $lidi"; fclose($soubora); $souborb = fopen("lidi.txt", "w"); fwrite($souborb, $vsechnylidi); fclose($souborb); v cronu pak načítám script z jiného virtuálu (a však na stejném serveru) takto */5 * * * * nobody wget http://IP/lidi.php -O /dev/null -o /dev/null co může způsobit, že v lidi.txt je pak záznam 2x? nějaké možné příčiny? load average? timeout server? data retrieval? díky za pomoc ještě by jsem rád dodal, že duplicitivní zápis je tam nepravidelně... zdvojený zápis není pravidlem :) |
||
Jan Tvrdík Profil |
#2 · Zasláno: 11. 7. 2015, 08:46:56
Jenicek:
Pro začátek bych tam přidal zámky a nahradil \r za \n , tj.
$datum = date("d.m.Y H:i:s"); $soubor = fopen("lidi.txt", "r+"); flock($soubor, LOCK_EX); $lidi = stream_get_contents($soubor); $vsechnylidi = "$datum $infoolidech \n $lidi"; fseek($soubor, 0); fwrite($soubor, $vsechnylidi); flock($soubor, LOCK_UN); fclose($soubor); |
||
Jenicek Profil |
#3 · Zasláno: 11. 7. 2015, 11:05:37
to ale zdvojený zápis neovlivní ne?
nemám v logu žádné chyby ani když jsem wget vyvolal rootem nejak vůbec nemám představu čím by to alespoň čistě teoreticky mohlo být... díky :) |
||
Keeehi Profil |
#4 · Zasláno: 11. 7. 2015, 16:15:15
Není ten script přístupný z internetu?
|
||
Jenicek Profil |
#5 · Zasláno: 11. 7. 2015, 17:37:49
ano ale je to pod .htpasswd a lidi.php načítá pouze cron
v administraci mám odkaz přímo na lidi.txt em... proč? |
||
Keeehi Profil |
#6 · Zasláno: 11. 7. 2015, 18:09:16
Jenicek:
„em... proč?“ Právě proto, že by ho mohlo spouštět něco jiného. Ale pokud by tomu tak opravdu bylo, pak bys měl vidět záznam v access logu. Ty z cronu tam nejsou, protože to nejde přes server ale napřímo. |
||
Kajman Profil |
#7 · Zasláno: 12. 7. 2015, 01:18:22
Jenicek:
Pokud wget nedostane v pořádku odpověď, zkusí adresu stáhnout znovu. Tomu se dá zemezit (a ověřit, že to není důvod zdvojení) parametrem --tries=1 Keeehi: Access log by opravdu měl poradit více. Ale měly by tam být i požadavky wgetu. |
||
Keeehi Profil |
Kajman:
Máš pravdu, já jsem úplně přehlédl, že to tlačí přes webserver a nevolá PHP přímo. Měl bych pozorněji číst. |
||
Jenicek Profil |
#9 · Zasláno: 12. 7. 2015, 11:51:34 · Upravil/a: Jenicek
tak to je skutečně tak... wget se volal 2x napsal jsem podmínku tak uvidíme zda to pomůže
zatím tam je jen jeden nový zápis a je JEDEN :D no jsem zvědav nikdy by m nenapadlo, že wget bude dělat toto zvláště u lokální IP ps: otevírání v PHP jsem zavrhl už v začátkách v minulosti jsem měl problém u volání cčkových věcí přes php a tak ho dohromady "nemám moc rád" :D raději nerozebírat :) Kajman: „Pokud wget nedostane v pořádku odpověď, zkusí adresu stáhnout znovu. Tomu se dá zemezit (a ověřit, že to není důvod zdvojení) parametrem“ jsem --tries=1 nějak přehlédl určitě také přidám ale podmínku už si tam raději nechám :D |
||
Časová prodleva: 10 let
|
0