NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Pavel.H
Člen
Avatar
Pavel.H:22.5.2017 20:08

Dobrý den.
Stahují jeden soubor přes wget.
Občas se stane že se soubor špatně stáhne a je v něm jen jeden řádek a má velikost 1 KB

Bych potřeboval nějak vyřešit, aby se po stažení zjistilo zda je v souboru víc řádku jak jeden, nebo zjistit velikost souboru a soubor stahovat třeba v intervalu 1 minuty, dokud se soubor nestáhne cely.

Pomuže někdo?

Děkují.

 
Odpovědět
22.5.2017 20:08
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Pavel.H
Honza Bittner:23.5.2017 9:23

Tímto příkazem zjistíš počet řádků.

cat $file | wc -l

Tímto zase velikost v bytech.

stat --format="%s" $file

Můžeš si tedy uložit data do nějakého souboru a pak se v ifu zeptat, kolik tam je řádků, nebo jak je veliký a podle toho se nějak zachovat.

Nahoru Odpovědět
23.5.2017 9:23
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovídá na Pavel.H
Atrament:23.5.2017 9:40

Když se ten soubor 'špatně stáhne' nevyhodí při tom wget nějakou chybu? Pokud jo tak bych si zkusil pohrát s parametrem --tries, který nastavuje kolikrát se to má zkoušet (default je 20, 0 znamená že to bude zkoušet dokud se to nepovede)

wget --tries=0 soubor_ke_stazeni....
 
Nahoru Odpovědět
23.5.2017 9:40
Avatar
Pavel.H
Člen
Avatar
Odpovídá na Honza Bittner
Pavel.H:23.5.2017 9:45

Děkují, toto jsem už vyřešíl.
filesize=$(stat -c '%s' soubor)
A přes while furt dokola, až bude větší než zadam.

Mam však problem s while.
S jedním souborem to dam ale.
Stahnu si třeba 3 takove soubory
filesize1=$(stat -c '%s' soubor)
filesize2=$(stat -c '%s' soubor)
filesize3=$(stat -c '%s' soubor)

Přes while chci furt dokola, pokud alespon jeden s ních nebude větší jak třeba 1 KB

 
Nahoru Odpovědět
23.5.2017 9:45
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Pavel.H
Honza Bittner:23.5.2017 10:02
#!/bin/bash

wget foo.tgz &> /dev/null

if [[ "$?" != 0 ]]; then
    echo "Error downloading file"
else
    echo "Success"
fi

Ještě můžeš zkusit kontrolovat návratový kód z wget.

Nahoru Odpovědět
23.5.2017 10:02
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.