Provided by:
manpages-cs_0.17.20080113-1_all 
JMÉNO
wget - neinteraktivní nástroj k stahování souborů
SYNTAXE
wget [volba]... [URL]...
POPIS
GNU Wget je nástroj pro neinteraktivní stahování souborů z WWW.
Podporuje protokoly HTTP, HTTPS a FTP, i stahování přes HTTP proxy.
Wget je neinteraktivní program, což znamená, že dovede pracovat na
pozadí, i když není uživatel přihlášen. Lze tedy spustit program,
odhlásit se a počkat, až dodělá určenou práci. Naopak většina www
prohlížečů vyžaduje neustálou přítomnost uživatele, což může být v
případě přenosu většího množství dat na obtíž.
Wget umí následovat odkazy z HTML a XHTML stránek a vytvářet lokální
verze vzdálených serverů tak, že vytvoří přesnou kopii jejich
adresářové struktury. Tomu se někdy říká ``rekurzívní stahování''.
Wget přitom respektuje Robot Exclusion Standard (/robots.txt). Wget je
možné nastavit, aby odkazy ve stažených HTML souborech konvertoval na
odkazy na lokální soubory pro offline prohlížení.
Wget byl navržen pro robustnost na pomalých nebo nestabilních sítových
připojeních; pokud stahování selže kvůli problému v síti, bude to
zkoušet znovu, dokud jej nestáhne celý. Pokud server podporuje obnovení
stahování (regetting), požádá jej o obnovení stahování v místě, kde
předtím skončil.
VOLBY
Syntaxe voleb
Protože Wget používá ke zpracování argumentů příkazové řádky GNU
getopt, má každá volba dlouhou a krátkou formu. Dlouhé se lépe
pamatují, ale zdržují při psaní. Je možné obě formy libovolně
kombinovat nebo uvádět volby za argumenty příkazové řádky. Tak je
možné napsat:
wget -r --tries=10 http://fly.srk.fer.hr/ -o log
Mezeru mezi volbou, která akceptuje argument, a argumentem lze
vypustit. Namísto -o log lze napsat -olog.
Volby, které argument nevyžadují, je možné sloučit, jako:
wget -drc <URL>
To je rovnocenné zápisu:
wget -d -r -c <URL>
Protože volby je možné uvést za argumenty, můžete argumenty ukončit s
--. Tj. následující zápis se pokusí stáhnout URL -x, selhání zapíše do
log:
wget -o log -- -x
Volby, které akceptují seznamy oddělené čárkou respektují konvenci, že
určení prázdného seznamu vymaže jeho hodnotu. To lze využít pro zrušení
nastavení z .wgetrc. Například pokud .wgetrc nastavuje
"exclude_directories" na /cgi-bin, následující příklad je nejprve
vymaže a potom nastaví na vyloučení /~nobody a /~somebody. Seznamy je
také možno vymazat ve .wgetrc.
wget -X '' -X /~nobody,/~somebody
Většina voleb, které neakceptují argumenty, jsou booleovsk volby,
protože jejich stav lze zachytit jako ano nebo ne (``booleovskou
proměnnou''). Například --follow-ftp nastaví Wget, aby následoval FTP
odkazy z HTML souborů a na druhou stranu --no-glob mu přikazuje
neprovádět globbing souborů na FTP URLs. Booleovská volba je buďto
kladn nebo zporn (začínající na --no). Všechny takové volby mají
některé vlastnosti společné.
Pokud není řečeno jinak, předpokládá se, že výchozí chování je opačné k
uvedené volbě. Například z toho, že existuje volba --follow-ftp,
vyplývá, že výchozím chováním je nenásledovat FTP odkazy z HTML
stránek.
Kladné volby mohou být negovány připsáním --no- před název volby;
Záporné volby mohou být negovány vypuštěním --no-. To se může zdát
nadbytečným ---pokud je výchozím chováním kladné volby nedělat něco,
proč potom poskytovat možnost jejího explicitního vypnutí? Protože
.wgetrc může výchozí chování změnit. Například uvedení "follow_ftp =
off" ve .wgetrc způsobí, že Wget nebude následovat FTP odkazy a použití
--no-follow-ftp je jediná možnost, jak z příkazové řádky obnovit
výchozí nastavení.
Základní volby
-V
--version
Zobrazí se verze Wget.
-h
--help
Vypíše nápovědu, popisující všechny volby příkazové řádky programu
Wget.
-b
--background
Okamžitě po spuštění se přepne na pozadí. Pokud není volbou -o
určen žádný soubor pro výstup, je výstup přesměrován do wget-log.
-e command
--execute command
Spustí se pkaz, jako kdyby to byla část souboru .wgetrc. Příkaz
vyvolaný touto cestou bude mít přednost před příkazy z .wgetrc.
Pokud je třeba určit více příkazů, použije se více instancí volby
-e.
Logování a volby vstupních souborů
-o logfile
--output-file=logfile
Zapisuj všechny zprávy do logfile. Tyto zprávy jsou normálně
zapisovány na standardní chybový výstup.
-a logfile
--append-output=logfile
Připoj do logfile. To samé jako -o, ale logfile pouze připojuje,
starý soubor nesmaže. Pokud logfile neexistuje, vytvoří nový.
-d
--debug
Zapne ladící výstup, tj. různé informace důležité pro vývojáře Wget
v případě, že nefunguje dle očekávání. Podpora ladícího výstupu je
k dispozici pouze pokud byla zapnuta při kompilaci. Všimněte si,
že i když je program zkompilovaný s ladícím výstupem, nevypisuje
žádné ladící informace, dokud o ně není požádán volbou
-d.
-q
--quiet
Tichý režim, žádný výstup.
-v
--verbose
Upovídaný výstup, se všemi dostupnými daty. Když je použit běžný
výstup, upovídanost je standardně nastavena.
-nv
--no-verbose
Vypne upovídanost, aniž by byl zcela tichý (k tomu slouží -q),
takže jsou tištěna chybová hlášení a základní informace.
-i soubor
--input-file=soubor
Čte URL z přímo ze souboru. Pokud je jako soubor určeno -, čtou se
URL ze standardního vstupu. (Pro čtení ze souboru, jehož jméno je
-, použijte ./-)
Není třeba zadávat žádná URL z příkazové řádky. Pokud jsou zadána
URL z příkazové řádky i ze souboru, provede se nejdříve stažení
souboru zadaného z příkazové řádky. Soubor nemusí být dokument typu
HTML (nic se nestane, když je) ---stačí, když jsou URL vypsány po
sobě.
Nicméně, když určíte --force-html, na dokument se bude pohlížet
jako na HTML. V tomto případě můžou nastat problémy s relativními
odkazy, což lze vyřešit buď přidáním "<base href="url">" do
dokumentu nebo blíže určit --base=url v příkazové řádce.
-F
--force-html
Když je použit vstup ze souboru, je soubor považován za HTML. Tato
možnost povolí získání relativních odkazů z existujících HTML
souborů na vašem pevném disku přidáním "<base href="url">" do HTML
nebo použitím volby --base.
-B URL
--base=URL
Přidá URL před relativní odkazy čtené ze souboru určeného volbou
-i.
Volby pro stahování
--bind-address=ADRESA
When making client TCP/IP connections, bind to ADDRESS on the local
machine. ADDRESS may be specified as a hostname or IP address.
This option can be useful if your machine is bound to multiple IPs.
-t poet
--tries=poet
Nastaví počet pokusů na poet. Pro nekonečno zadejte 0 nebo inf.
Výchozí nastavení je 20 pokusů, s výjimkou závažných chyb jako
``connection refused'' nebo ``not found'' (404), u nichž se nové
pokusy nekonají.
-O soubor
--output-document=soubor
Dokumenty nebudou zapisovány do příslušných souborů, ale všechny
budou připojeny do jediného souboru se jménem, určeným v parametru.
Když je jméno souboru určeno jako -, budou dokumenty zapisovány na
standardní výstup. (Pro zápis do souboru pojmenovaného - použijte
./-.)
Pozor, kombinace s -k je jasně definována pouze pro stahování
jediného souboru.
-nc
--no-clobber
Pokud je soubor ukládán do stejného adresáře více než jednou,
závisí chování Wgetu na několika volbách, včetně -nc. V některých
případech je lokální soubor přepsán (clobbered), jindy je zachován.
Při spuštění Wgetu bez voleb -N, -nc nebo -r bude při ukládání
stejného souboru do stejného adresáře původní kopie souboru
zachována a jeho druhá kopie pojmenována soubor.1. Pokud je tento
soubor ukládán ještě jednou, je třetí kopie pojmenována soubor.2,
atd. Pokud je použita volba -nc, je toto chování potlačeno a Wget
nové kopie souboru odmítne stáhnout. Takže ``"no-clobber"'' ve
skutečnosti nezabraňuje přepsání, nýbrž ukládání vícenásobných
verzí.
Při spuštění Wget s volbou -r, ale bez -N nebo -nc, bude výsledkem
dalšího stažení souboru přepsání staré kopie novou. Přidáním -nc
bude původní soubor zachován a nové kopie na serveru budou
ignorovány.
Při spuštění Wgetu s -N, ať už s nebo bez -r, bude rozhodnutí, zda
stáhnout novou kopii, záviset na datech změny a velikostech
souborů. Volba -nc nesmí být použita.
Pozor, pokud je použita volba -nc, budou soubory s příponou .html
nebo .htm nahrány z lokálního disku a zpracovány jako by byly
staženy z webu.
-c
--continue
Pokračování v příjmu částečně staženého souboru. To se hodí, pokud
chcete dokončit stahování započaté předchozí instancí Wgetu nebo
jiným programem. Např.:
wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
Pokud je v aktuálním adresáři soubor s názvem ls-lR.Z, Wget bude
předpokládat, že se jedná o první část vzdáleného souboru a požádá
server o pokračování v přenosu od offsetu rovnému délce lokálního
souboru.
Všimněte si, že tento parametr není nutné zadávat, pokud pouze
chcete, aby Wget pokračoval ve stahování souboru po přerušení
spojení. To je jeho výchozí chování. -c má vliv pouze na obnovení
stahování započatých ped spuštěním aktuální instance Wgetu, a
pokud stále ještě jsou k dispozici lokální soubory.
Bez volby -c by předchozí příklad pouze stáhnul vzdálený soubor
jako ls-lR.Z.1 a zkrácený soubor ls-lR.Z by nechal být.
Od verze 1.7 Wget při použití volby -c na neprázdném souboru a v
případě, že server nepodporuje obnovení stahování, odmítne začít
stahování od začátku, což by mohlo přemazat dosud získaný obsah.
Pokud opravdu chcete začít stahovat od začátku, smažte soubor.
Rovněž od verze 1.7 Wget při použití volby -c na souboru se stejnou
délkou jako soubor na serveru odmítne soubor stáhnout a vypíše
vysvětlení. To samé se stane pokud je soubor na serveru menší než
lokální soubor (pravděpodobně proto, že od posledního pokusu o
stažení byl soubor na serveru změněn)---protože pokračování nemá
smysl, ke stažení nedojde.
Na druhou stranu při použití -c je jakýkoliv soubor, který je na
serveru větší než soubor lokální, považován za nedokončené
stahování a bude staženo a připojeno na konec lokálního souboru
pouze "(délka(vzdálený) - délka(lokální))" bajtů. To se může někdy
hodit---například při použití wget -c ke stažení pouze nové části
připojené k souboru dat nebo logu.
Nicméně pokud je soubor na serveru větší, protože byl zmnn, na
rozdíl od pouhého pipojen, vznikne pokažený soubor. Wget nemá
žádnou možnost ověřit, že lokální soubor je skutečně platnou částí
vzdáleného souboru. Zvláštní pozornost je potřeba při použití -c
spolu s -r, protože každý soubor bude považován za potenciální
"nedokončené stahování".
Dalším případem, kdy dojde s volbou -c k poškození souboru je
hloupá HTTP proxy vkládající do lokálního souboru řetězec
``transfer interrupted''. V budoucnu může být pro tyto případy
přidána volba ``rollback''.
Pozor, -c funguje pouze s FTP servery a s HTTP servery, které
podporují hlavičku "Range".
--progress=druh
Vybere druh ukazatele postupu, který má být použit. Platné druhy
jsou ``dot'' a ``bar''.
Jako výchozí je nastaven ``bar'' (čárový). Vykresluje ASCII čáru
postupu (alias ``teploměr''), který ukazuje stav stahování.Pokud
výstup není TTY, je jako výchozí použit ``dot'' (tečkový).
Pro přepnutí na ``tečkový'' použijte --progress=dot. Při stahování
vypisuje na obrazovku tečky; každá tečka reprezentuje fixní objem
stažených dat.
Při použití tečkového druhu je též možné nastavit styl určením
druhu jako dot:styl. Různé styly znamenají různé významy pro jednu
tečku. Ve výchozím stylu ("default") reprezentuje každá tečka 1 KB,
v jedné skupině je 10 teček a na řádku je 50 teček. Binární styl
("binary") je spíše ``počítačově'' orientován ---8 KB na tečku, 16
tečkové skupiny a 48 teček na řádek (takže 384 KB na řádek). Styl
"mega" je vhodný pro stahování obrovských souborů---každá tečka
reprezentuje 64K, 8 teček ve skupině a 48 teček na řádek (tj. 3 MB
na řádek).
Všimněte si, že výchozí styl je možno nastavit příkazem "progress"
v souboru .wgetrc. Toto nastavení může být z příkazové řádky
potlačeno, s výjimkou výstupu na jiné zařízení než TTY, v tom
případě bude ``dot'' upřednostněno před ``bar''. Pro vynucení
čárového výstupu se použije --progress=bar:force.
-N
--timestamping
Zapne časové označení (timestamping).
-S
--server-response
Vypíše hlavičky odeslané HTTP serverem a odpovědi odeslané FTP
serverem.
--spider
Při spuštění s touto volbou se bude Wget chovat jako Web spider,
tj. nebude stránky stahovat, jenom kontrolovat, jestli existují.
Např. je možné použít wget na kontrolu záložek:
wget --spider --force-html -i bookmarks.html
Na této funkcionalitě se ještě musí zapracovat, aby se alespoň
přiblížila skutečným web spiders.
-T vteřin
--timeout=vtein
Nastavení časového limitu sítě na zadaný počet vtein. Je
ekvivalentní společnému nastavení --dns-timeout, --connect-timeout
a --read-timeout.
Kdykoliv probíhá síťová operace, Wget může ověřovat prodlevu a
operaci přerušit, pokud trvá příliš dlouho. Tak lze zabránit
zamrznutí nebo nekonečným spojením. Jediným časovým limitem, který
je jako výchozí nastaven, je 900 vteřin na čtení. Nastavením na 0
se vyřadí. Výchozí hodnotu je záhodno měnit pouze v případě, že
skutečně víte, co děláte.
Všechny volby týkající se časových limitů akceptují hodnoty v
desítkové soustavě, včetně hodnot pod vteřinu. Např. 0.1 vteřin je
platnou (ačkoliv nevhodnou) hodnotou. Hodnoty pod vteřinu se hodí
při testování časů odpovědi serveru nebo latence sítě.
--dns-timeout=vtein
Nastaví časový limit pro DNS dotaz na zadaný počet vtein. DNS
dotazy, které nejsou ve stanoveném čase dokončeny, selžou. Jako
výchozí není pro DNS dotazy stanoven žádný časový limit nad rámec
implementace knihovnami systému.
--connect-timeout=vtein
Nastaví časový limit na zadaný počet vtein. TCP spojení, která se
za tu dobu nepodaří sestavit budou přerušena. Jako výchozí není
pro sestavení spojení stanoven žádný časový limit nad rámec
implementace knihovnami systému.
--read-timeout=vtein
Nastaví časový limit pro čtení (a zápis) na zadaný v počet vtein.
``Čas'' v tomto případě znamená neinn as: pokud v jakékoliv fázi
stahování nejsou přijata žádná data po více než zadaný počet
vteřin, čtení selže a stahování začne znovu. Tato volba
neovlivňuje přímo trvání celého stahování.
Samozřejmě vzdálený server se může rozhodnout ukončit spojení dříve
než stanoví tato volba. Výchozí hodnotou časového limitu pro čtení
je 900 vteřin.
--limit-rate=poet
Omezí rychlost stahování na poet bajtů za vteřinu. Počet může být
vyjádřen v bajtech, s příponou k v kilobajtech nebo s příponou m v
megabajtech. Např. --limit-rate=20k omezí rychlost stahování na
20KB/s. To se hodí pokud z jakéhokoliv důvodu nechcete, aby Wget
zabral celé přenosové pásmo.
Tato volba umožňuje použít desetiny, obvykle spolu s příponami;
např. --limit-rate=2.5k je platné nastavení.
Všimněte si, že Wget implementuje omezování nečinností po určitý
čas, v případě, že čtení ze sítě trvalo méně nežli je určeno
limitem. Tato strategie způsobí, že TCP přenos se zpomalí zhruba
na rychlost danou limitem. Nicméně dosažení rovnováhy může chvíli
trvat, takže v případě velmi malých souborů to moc dobře nefunguje.
-w vtein
--wait=vtein
Čekat zadaný počet vteřin mezi jednotlivými staženími. Použití
této volby se doporučuje, protože se tak snižuje zatížení serveru.
Namísto v sekundách může být určeno v minutách pomocí přípony "m",
v hodinách s příponou "h" nebo dnech s příponou "d".
Nastavení velké hodnoty se hodí v případě, že je síť nebo server
nedostupný, takže Wget může čekat dostatečně dlouho aby se dalo
očekávat, že bude chyba na síti mezitím opravena.
--waitretry=vtein
Pokud nechcete, aby Wget čekal mezi kadm stažením, ale jen mezi
staženími, která selhala, použijte tuto volbu. Wget použije
linern stup (linear backoff), tj. čekání 1 vteřinu po prvním
selhání u souboru, 2 vteřiny po druhém selhání u stejného souboru,
až po zadaný počet vtein. Tj. hodnota 10 způsobí, že Wget bude
čekat až (1 + 2 + ... + 10) = 55 vteřin u každého souboru.
Tato volba je zapnuta jako výchozí v globálním souboru wgetrc.
--random-wait
Některé www servery mohou provádět analýzu záznamů za účelem
identifikace programů jako je Wget hledáním statisticky podobných
časů mezi požadavky. Tato volba způsobí, že čas mezi požadavky se
bude pohybovat mezi 0 a 2 * wait vteřinami, kde wait je hodnota
daná volbou --wait, aby nemohl být Wget identifikován.
Nedávno byl v článku v publikaci věnované vývoji pro populárního OS
zveřejněn kód, který tuto analýzu provádí za běhu. Jeho autor
navrhoval blokování celého C rozsahu, aby programy pro automatické
stahování byly blokovány i při změně adresy poskytnuté DHCP.
Volba --random-wait byla tímto zlomyslným návrhem inspirována.
--no-proxy
nepoužívat proxy, i pokud je příslušná proměnná prostředí *_proxy
definována.
Pro další informace o používání proxy s Wgetem,
-Q kvta
--quota=kvta
Nastaví kvótu pro automatická stahování. Hodnota může být určena v
bajtech (výchozí), kilobajtech (s příponou k) nebo megabajtech (s
příponou m).
Všimněte si, že kvóta nikdy neovlivní stažení jediného souboru.
Takže pokud napíšete wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz,
stáhne se soubor ls-lR.gz celý. To samé platí i pokud je na
příkazovém řádku určeno několik URL. Nicméně kvóta platí v případě,
že se stahuje buďto rekurzivně nebo ze zadaného vstupního souboru.
Tj. v případě wget -Q2m -i sites bude stahování přerušeno jakmile
bude převýšena kvóta.
Zadáním kvóty na 0 nebo inf se kvóta nastaví na nekonečno.
--no-dns-cache
Vypne vyrovnávací paměť DNS dotazů. Za normálních okolností si Wget
pamatuje IP adresy, které získal z DNS, takže nemusí pravidelně
kontaktovat DNS server pro stejnou (obvykle malou) sadu hostitelů,
z nichž stahuje. Tato vyrovnávací paměť existuje pouze v paměti a
nová instance Wgetu musí DNS kontaktovat znovu.
Nicméně jsou případy, kdy není žádoucí udržovat jména hostitelů ve
vyrovnávací paměti, a to ani po krátkou dobu. S touto volbou Wget
pro každé nové spojení použije nový DNS dotaz (přesněji nové volání
"gethostbyname" nebo "getaddrinfo"). Tato volba neovlivn
cachování, které může provádět DNS knihovna nebo externí
vyrovnávací vrstva, jako je třeba NSCD.
Pokud přesně nerozumíte, k čemu tato volba slouží, pravděpodobně ji
nepotřebujete.
--restrict-file-names=reim
Nastaví, které znaky z URL se mohou objevit v názvech lokálních
souborů získaných z těchto URL. Znaky, které jsou touto volbou
zakzny jsou uvozeny, tj- nahraženy %HH, kde HH je hexadecimální
číslo odpovídající zakázanému znaku.
Jako výchozí Wget uvozuje znaky, které nejsou platné pro názvy
souborů operačního systému, stejně jako kontrolní znaky, které jsou
většinou netisknutelné. Tato volba se hodí pro změnu výchozího
nastavení v případě, že stahujete na nenativní diskový oddíl nebo
chcete vypnout uvozování kontrolních znaků.
Když je režim nastaven na ``unix'', Wget uvozuje znak / a kontrolní
znaky v rozahu 0--31 a 128--159. To je výchozí nastavení pro Unix-
like OS'.
Když je režim nastaven na ``windows'', Wget uvozuje znaky \, |, /,
:, ?, ", *, <, > a kontrolní znaky v rozsahu 0--31 a 128--159. V
režimu windows Wget navíc používá + namísto : pro oddělení
hostitele a portu v názvech lokálních souborů a používá @ namísto ?
pro oddělení dotazovací části názvu souboru od zbytku. Takže URL,
které by bylo v unix režimu uloženo jako
www.xemacs.org:4300/search.pl?input=blah, bude v režimu windows
uloženo jako www.xemacs.org+4300/search.pl@input=blah. Tento režim
je na Windows nastaven jako výchozí.
Pokud k režimu připojíte ,nocontrol, např. unix,nocontrol, bude
uvozování kontrolních znaků vypnuto. Pro vypnutí uvozování
kontrolních znaků bez vlivu na výběr OS lze použít
--restrict-file-names=nocontrol.
-4
--inet4-only
-6
--inet6-only
Vynutí připojování k IPv4 nebo IPv6 adresám. S --inet4-only nebo
-4 se Wget bude připojovat pouze k IPv4 hostitelům, ignorujíc AAAA
záznamy v DNS a odmítne se připojit k IPv6 adresám určeným v URL.
Naopak s --inet6-only nebo -6 se Wget bude připojovat pouze k IPv6
hostitelům a bude ignorovat A záznamy a IPv4 adresy.
Žádnou z těchto voleb by nemělo být nutné nastavovat ručně. Jako
výchozí Wget, který IPv6 umí, použije druh adres, určený DNS
záznamem hostitele. Pokud DNS odpoví IPv4 i IPv6 adresou, Wget je
postupně zkusí, dokud nenajde tu, ke které se dá připojit. (Také
viz volba "--prefer-family" popsaná níže.)
Tyto volby mohou být použity k vynucení užití IPv4 nebo IPv6 adres
na systémech, které podporují obě možnosti, obvykle za účelem
ladění nebo řešení rozbité konfigurace sítě. Najednou může být
použita pouze jedna z voleb --inet6-only a --inet4-only. Pokud
nebyl Wget zkompilován s podporou IPv6, nejsou tyto volby dostupné.
--prefer-family=IPv4/IPv6/none
Je-li na výběr více adres, bude preferovat určený druh adres. Jako
výchozí jsou preferovány IPv4 adresy.
Tím se vyhne falešným chybám a pokusům o spojení, při přístupu z
IPv4 sítí k hostitelům, kteří mají jak IPv6 tak IPv4 záznam.
Například www.kame.net se překládá na
2001:200:0:8002:203:47ff:fea5:3085 a na 203.178.141.194. Je-li
preferováno "IPv4", poižije se IPv4 adresa jako první; je-li
preferováno "IPv6", použije se jako první IPv6 adresa; je-li zadána
hodnota "none", je pořadí adres vrácených DNS použito beze změny.
Na rozdíl od -4 a -6 tato volba neomezuje používání na jediný druh
adres, pouze mění poad, ve kterém je k adresám přistupováno. Také
si všimněte, že provedená změna pořadí je stabiln---neovlivnuje
pořadí adres stejného druhu, tj. relativní pořadí všech IPv4 adres
a všech IPv6 adres zůstává ve všech případech nedotčeno.
--retry-connrefused
Považuj ``connection refused'' za dočasnou chybu a zkoušej znovu.
Normálně Wget pokus o stažení URL vzdá, pokud se k serveru nedokáže
připojit, protože takové selhání se bere jako znamení, že server
vůbec neběží a další pokusy by nikam nevedly. Tato volba se hodí k
zrcadlení nespolehlivých serverů, které na krátké časové úseky
vypadávají.
--user=uivatel
--password=heslo
Nastaví uivatele a heslo heslo pro stahování přes FTP i HTTP. Tyto
parametry lze potlačit použitím voleb --ftp-user a --ftp-password
pro FTP přenosy a --http-user a --http-password pro HTTP přenosy.
Volby pro adresáře
-nd
--no-directories
Při rekurzivním stahování nevytvářet adresářovou hierarchii.
Všechny soubory budou uloženy do aktuálního adresáře, bez
přepisování (pokud existuje více souborů se stejným jménem, jsou
uloženy s příponami .n).
-x
--force-directories
Opak -nd---vytvoří adresářovou hierarchii, i v případě, že by jinak
vytvořena nebyla. Např. wget -x http://fly.srk.fer.hr/robots.txt
uloží stažený soubor do fly.srk.fer.hr/robots.txt.
-nH
--no-host-directories
Nebude vytvářet adresáře začínající názvem hostitele. Jako výchozí
bude při spuštění Wget s volbou -r http://fly.srk.fer.hr/ vytvořena
adresářová struktura začínající fly.srk.fer.hr/. Tato volba toto
chování vypne.
--protocol-directories
Použije název protokolu v cestě k lokálnímu souboru. Např. (s
touto volbou) wget -r http://host bude ukládat do http/host/... a
ne do host/....
--cut-dirs=poet
Bude ignorovat zadaný poet podadresářů. To se hodí pro detailní
kontrolu nad adresářem, kam se ukládá.
Viz např. adresář ftp://ftp.xemacs.org/pub/xemacs/. Při jeho
stažení s -r bude uložen lokálně v ftp.xemacs.org/pub/xemacs/.
Zatímco volba -nH může odstranit podadresář ftp.xemacs.org/, ale
pořád zbývá pub/xemacs. Tady se --cut-dirs hodí; způsobí, že Wget
nebude ``vidět'' poet podadresářů vzdáleného adresáře. Následuje
několik příkladů fungování volby --cut-dirs.
No options -> ftp.xemacs.org/pub/xemacs/
-nH -> pub/xemacs/
-nH --cut-dirs=1 -> xemacs/
-nH --cut-dirs=2 -> .
--cut-dirs=1 -> ftp.xemacs.org/xemacs/
...
Pokud je pouze potřeba zbavit se adresářové struktury, lze
podobného výsledku dosáhnout kombinací -nd a -P. Nicméně narozdíl
od -nd volba --cut-dirs neruší podadresáře---např. při použití -nH
--cut-dirs=1 bude podadresář beta/ podle očekávání umístěn do
xemacs/beta.
-P prefix
--directory-prefix=prefix
Nastaví prefix pro adresáře na prefix. Adres prefix je adresář,
kam se budou všechny soubory a podadresáře ukládat. Výchozí
hodnotou je . (aktuální adresář).
Volby HTTP
-E
--html-extension
Pokud je stažen soubor typu application/xhtml+xml nebo text/html a
jeho URL nekončí příponou odpovídající regulárnímu výrazu
\.[Hh][Tt][Mm][Ll]?, způsobí tato volba připojení přípony .html k
názvu lokálního souboru. To se hodí např. při zrcadlení serveru
používajícího .asp, když mají být zrcadlené stránky zprostředkovány
serverem Apache. Nebo také při stahování obsahu, generovaného CGI.
URL typu http://site.com/article.cgi?25 bude uloženo jako
article.cgi?25.html.
Všimněte si, že soubory, jejichž jména byla takto změněna, budou
při každém dalším zrcadlení stahovány znovu, protože Wget nedokáže
určit, že lokální soubor X.html odpovídá vzdálenému URL X (protože
zatím neví, že výstup této URL je typu text/html nebo
application/xhtml+xml. Zabránit se tomu dá použitím voleb -k a -K,
takže je originální verze souboru uložena jako X.orig.
--http-user=uivatel
--http-password=heslo
Nastaví uživatele uivatel a heslo heslo pro HTTP server. V
závislosti na typu výzvy je Wget zakóduje autentizačním schématem
"basic" (nezabezpečené) nebo "digest".
Dalším způsobem zadání uživatele a hesla je samotné URL. Obě
metody odhalí použité heslo každému, kdo by se obtěžoval spustit
"ps". Tomu lze zabránit uskladněním hesel v .wgetrc nebo .netrc a
ochranou těchto souborů před ostatními uživateli nastavením práv
příkazem "chmod". Pokud se jedná o opravdu důležitá hesla,
nenechávejte je v těch souborech ležet---poté co Wget začal
stahovat, smažte je.
--no-cache
Vypne vyrovnávací paměť na straně serveru - Wget pošle serveru
příslušnou direktivu (Pragma: no-cache), aby získal vzdálený soubor
přímo a ne jeho verzi z vyrovnávací paměti. To se zvláště hodí při
stahování souborů, jejichž zastaralá verze visí ve vyrovnávací
paměti proxy serveru.
Používání vyrovnávací paměti je ve výchozím stavu povoleno.
--no-cookies
Zakáže používání cookies. Cookies slouží k udržování o stavu na
serveru. Server pošle klientovi cookie pomocí hlavičky "Set-Cookie"
a klient touto cookie odpovídá na další dotazy. Protože cookie
umožňuje vlastníkovi serveru sledovat návštěvníky, může být jejich
užití považováno za narušování soukromí. Jako výchozí je používání
cookies povoleno, nicméně skladovn cookies je vypnuto.
--load-cookies soubor
Nahraje cookies ze souboru před prvním HTTP stahováním. soubor je
textový soubor ve formátu původního souboru cookies.txt v Netscape.
Tato volba je typicky používána v případech zrcadlení serverů,
které vyžadují přihlášení pro přístup k části nebo celému obsahu.
Přihlašovací proces obvykle probíhá tak, že web server na základě
přijatých a ověřených přihlašovacích informací vydá HTTP cookie.
Tuto cookie potom prohlížeč při přístupu do vyhrazené části posílá
serveru, čímž prokazuje svou identitu.
Zrcadlení takového serveru vyžaduje, aby Wget posílal stejné
cookies, jako posílá váš prohlížeč. Toho se dosáhne volbou
--load-cookies---prostě se Wgetu předá umístění souboru cookies.txt
a bude posílat stejné cookies, jako by v dané situaci posílal váš
prohlížeč. Různé prohlížeče udržují textové cookie soubory na
různých místech:
Netscape 4.x.
Cookies jsou v ~/.netscape/cookies.txt.
Mozilla a Netscape 6.x.
Cooki soubor Mozilly se také jmenuje cookies.txt a je umístěn
někde v ~/.mozilla, v adresáři vašeho profilu. Úplná cesta
obvykle vypadá podobně jako ~/.mozilla/default/some-weird-
string/cookies.txt.
Internet Explorer.
Pro vytvoření cookie souboru použitelného Wgetem zvolte v menu
Soubor Import a Expert, Exportovat cookies. Testováno s
Internet Explorerem 5; Není zaručeno, že bude fungovat s
dřívějšími verzemi.
Ostatní prohlížeče.
Pokud používáte jiný prohlížeč, --load-cookies fungovat pouze v
případě, že dokážete najít nebo vytvořit cookie soubor ve
formátu Netscape.
Pokud není možné použít --load-cookies, je tu ještě jedna
alternativa. Pokud prohlížeč podporuje ``správu cookie'', je možné
použít jej pro zobrazení cookies, které jsou používány k přístupu k
zrcadlenému serveru. Opište si název a hodnotu cookie a ručně
nařiďte Wgetu, aby je posílal, čímž ``oficiální'' podporu cookies
obejdete:
wget --no-cookies --header "Cookie: <název>=<hodnota>"
--save-cookies soubor
Před ukončením uloží cookies do souboru. Takto nebudou uloženy
cookies, které vypršely nebo nemají nastaven čas vypršení (tzv.
``session cookies''), viz též --keep-session-cookies.
--keep-session-cookies
Pokud je použito, způsobí, že volba --save-cookies bude také
ukládat session cookies. Ty za normálních okolností ukládány
nejsou, protože mají být uchovávány pouze v paměti a zapomenuty při
zavření prohlížeče. Jejich uložení se hodí u serverů, které
požadují přihlášení nebo návštěvu home page před umožněním přístupu
na některé stránky. S touto volbou je pro daný server vícero
spuštění Wgetu považováno za jedinou session prohlížeče.
Protože formát cookie souboru normálně neobsahuje session cookies,
Wget je označí časem expirace 0. Volba --load-cookies je rozpozná
jako session cookies, ale ostatní prohlížeče to může zmást. Také
si všimněte, že s takto nahranými cookies bude zacházeno jako s
ostatními session cookies, tj. pokud je má volba --save-cookies
opět zachovat, je nutné znovu použít --keep-session-cookies.
--ignore-length
Některé HTTP servery (resp. CGI programy) bohužel posílají neplatné
hlavičky "Content-Length", což Wget nesnáší dobře, protože si
myslí, že dokument nebyl stažen úplně. Příznakem jsou opakované
pokusy Wgetu o stažení stejného dokumentu, které pokaždé skončí
hláškou, že (jinka normální) spojení bylo ukončeno na stejném
bajtu.
S touto volbou bude Wget hlavičku "Content-Length" ignorovat---
jako by nikdy neexistovala.
--header=header-line
Bude posílat header-line spolu s ostatními hlavičkami v každém HTTP
požadavku. Dodaná hlavička je poslána tak, jak je, tzn. musí
obsahovat název a hodnotu oddělené středníkem a nesmí obsahovat
znak nového řádku.
Pro definování více hlaviček je možné použít --header vícenásobně.
wget --header='Accept-Charset: iso-8859-2' \
--header='Accept-Language: hr' \
http://fly.srk.fer.hr/
Nastavením hodnoty na prázdný řetězec se smažou všechny dříve
definované hlavičky.
Od verze 1.10 může být tato volba použita pro přepsání jinak
automaticky generovaných hlaviček. Následující příkaz instruuje
Wget, aby se připojil na localhost, ale použil foo.bar v hlavičce
"Host":
wget --header="Host: foo.bar" http://localhost/
Ve verzích před 1.10 takové použití volby --header způsobovalo
posílání duplicitních hlaviček
--proxy-user=uivatel
--proxy-password=heslo
Nastaví uživatelské jméno uivatel a heslo heslo pro autentizaci na
proxy serveru. Wget je zakóduje autentikačním schématem "basic".
I zde platí bezpečnostní ohledy popsané u --http-password.
--referer=url
Zahrne do HTTP požadavku hlavičku `Referer: url'. Hodí se pro
získávání dokumentů zpracovávaných na serveru, který očekává pouze
stahování interaktivními prohlížeči, a které lze stáhnout v pořádku
pouze pokud je hlavička Referer nastavena na jednu ze stránek,
která na ně odkazuje.
--save-headers
Uloží hlavičky poslané HTTP serverem do souboru, před jeho současný
obsah, záznamy jsou odděleny znakem nového řádku.
-U agent-string
--user-agent=agent-string
Bude se HTTP serveru identifikovat jako agent-string.
HTTP protokol umožňuje klientům identifikovat se pomocí hlavičky
"User-Agent". Tak je možné odlišit WWW software, obvykle pro
statistické účely nebo pro sledování porušování protokolu. Wget se
normálně identifikuje jako Wget/verze, kde verze je aktuální číslo
verze Wgetu.
Nicméně některé servery uplatňují politiku výstupu na míru podle
informací z "User-Agent". Zatímco teoreticky to není tak špatný
nápad, bývá to zneužíváno servery k odepření informací klientům
jiným než (historicky) Netscape nebo častěji Microsoft Internet
Explorer. Tato volba umožňuje změnit řádek "User-Agent" posílaný
Wgetem. Pokud nevíte, co děláte, nepoužívejte tuto volbu.
Určením prázdného řetězce pomocí --user-agent="" způsobí, že Wget
hlavičku "User-Agent" v HTTP požadavcích nepošle vůbec.
--post-data=etzec
--post-file=soubor
Jako metodu pro všechny HTTP požadavky použije POST a určená data
pošle v těle požadavku. "--post-data" posílá jako data etzec,
zatímco "--post-file" posílá obsah souboru. Jinak fungují úplně
stejně.
Prosím všimněte si, že Wget potřebuje dopředu znát velikost dat.
Proto musí být argument k "--post-file" obyčejným souborem; zadání
FIFO nebo něco jako /dev/stdin nebude fungovat. Není jasné, jak
toto omezení, vlastní pro HTTP/1.0 obejít. Ačkoliv HTTP/1.1 zavádí
chunked transfer, který nevyžaduje znalost délky požadavku dopředu,
klient nemůže chunked použít, pokud neví, že hovoří s HTTP/1.1
serverem. A dokud od něj nezíská odpověď, tak to vědět nemůže, což
zase vyžaduje, aby byl požadavek dokončen -- problém slepice a
vejce.
Pozn.: pokud je Wget po dokončení POST požadavku přesměrován,
nebude již na novou URL posílat POST. To proto, že URL, která
zpracovávají POST, často odpoví přesměrováním na obyčejnou stránku,
která POST nevyžaduje či neakceptuje. Není zcela jasné, jestli je
toto chování optimální; pokud to nebude fungovat, lze jej v
budoucnu změnit.
Následující příklad ukazuje, jak se přihlásit na server pomocí POST
a poté přistoupit ke stažení požadovaných stránek, které jsou
přístupné pouze autorizovaným uživatelům:
# Přihlášení na server; to lze udělat pouze jednou.
wget --save-cookies cookies.txt \
--post-data 'user=foo&password=bar' \
http://server.com/auth.php
# A teď stáhnout stránku, kterou potřebuji.
wget --load-cookies cookies.txt \
-p http://server.com/interesting/article.php
Pokud server používá ke sledování autentizace uživatelů session
cookies, nebude tento příklad fungovat, protože --save-cookies je
neuloží (ani prohlížeče je neuloží) a soubor cookies.txt bude
prázdný V tom případě pro vynucené ukládání session cookies
přidejte volbu --keep-session-cookies.
Volby HTTPS (SSL/TLS)
Pro podporu šifrovaného HTTP (HTTPS) stahování musí být Wget
zkompilován a externí SSL knihovnou, což je v současné době OpenSSL.
Pokud je Wget zkompilován bez podpory SSL, žádná z těchto voleb není
dostupná.
--secure-protocol=protokol
Zvolí, který zabezpečený protokol bude použit. Platné hodnoty jsou
auto, SSLv2, SSLv3 a TLSv1. Pokud je použito auto, je výběr
protokolu na knihovně SSL, což se uskuteční posláním SSLv2 pozdravu
a oznámením podpory SSLv3 a TLSv1. To je výchozí nastavení.
Určení SSLv2, SSLv3 nebo TLSv1 vynutí použití odpovídajícího
protokolu. To se hodí při spojení se starými a chybnými
implementacemi SSL serveru, které OpenSSL neumožňují vybrat správný
protokol automaticky. Naštěstí jsou takové servery vzácné.
--no-check-certificate
Neověřuje certifikát serveru u dostupných certifikačních autorit.
Také nebude vyžadovat, aby jméno hostitele v URL odpovídalo jménu v
certifikátu
Od verze 1.10 je jako výchozí nastaveno ověřování certifikátu
serveru u známých certifikačních autorit s přerušením SSL handshake
a zrušením stahování, pokud ověření selže. Ačkoliv je tak dosaženo
bezpečnějšího stahování, spolupráce s některými servery, které s
předchozími verzemi fungovaly, nebude fungovat, zvláště pokud
používají certifikáty podepsané sebou samými, prošlé nebo jinak
neplatné. Tato volba vynutí ``nezabezpečený'' režim, který změní
chyby ověření certifikátu na varování a umožní pokračovat.
Pokud se setkáte s chybami ``certificate verification error'' nebo
``common name doesn't match requested host name'', můžete tuto
volbu použít pro obejití ověřování a pokračování ve stahování.
Pouvejte tuto volbu pouze pokud jste pesvdeni o autenticit
serveru nebo pokud je vm opravdu jedno, e m neplatn certifikt.
Nekontrolovat certifikáty při přenosu důvěrných nebo důležitých dat
je téměř vždy špatný nápad.
--certificate=soubor
Použij klientský certifikát uložený v souboru. to je potřeba pro
servery, které po klientech, kteří se k nim připojují, požadují
certifikát. Normálně to požadováno není a tato volba není povinná.
--certificate-type=typ
Určí typ klientského certifikátu. Platné hodnoty jsou PEM (výchozí)
a DER, také známý jako ASN1.
--private-key=soubor
Načte privátní klíč ze souboru. Tak je možné poskytnout privátní
klíč v souboru odděleně od certifikátu.
--private-key-type=typ
Určí typ privátního klíče. Povolené hodnoty jsou PEM (výchozí) a
DER.
--ca-certificate=soubor
Použije soubor jako soubor s balíkem certifikačních autorit
(``CA'') pro ověřování. Certifikáty musejí být ve formátu PEM.
Bez této volby Wget hledá certifikáty CA na místech určených
systémem, vybraných při instalaci OpenSSH.
--ca-directory=adres
Určí adresář obsahující certifikáty CA ve formátu PEM. Každý soubor
obsahuje jeden certifikát CA a jméno souboru je založeno na hodnotě
hashe certifikátu. Toho je docíleno zpracováním adresáře
certifikátů utilitou "c_rehash", dodávanou s OpenSSL. Volba
--ca-directory je efektivnější než --ca-certificate v případě, kdy
je nainstalováno mnoho certifikátů, protože umožňuje Wgetu vybrat
certifikáty, když jsou potřeba.
Bez této volby Wget hledá certifikáty CA na místech určených
systémem, vybraných při instalaci OpenSSH.
--random-file=soubor
Použije soubor jako zdroj náhodných dat pro seeding generátoru
pseudonáhodných čísel na systémech bez /dev/random.
Na takových systémech knihovna SSL vyžaduje pro svou inicializaci
externí zdroj náhodnosti. Náhodnost může poskytovat EGD (viz
--egd-file níže) nebo může být čtena z externího zdroje určeného
uživatelem. Pokud není tato volba určena, Wget hledá náhodná data
v $RANDFILE nebo, pokud tato není nastavena, v $HOME/.rnd. Pokud
ani jedno není dostupné, SSL šifrování nejspíš nebude použitelné.
Pokud se objevuje chyba ``Could not seed OpenSSL PRNG; disabling
SSL.'', je třeba dodat náhodná data jednou z popsaných metod.
--egd-file=soubor
Použije soubor jako EGD soket. EGD znamená Entropy Gathering
Daemon, program v uživatelském prostoru, který sbírá data z různých
nepředpověditelných systémových zdrojů a zpřístupňuje je ostatním
programům, které je mohou potřebovat. Šifrovací software, jako je
knihovna SSL, potřebuje zdroje neopakující se náhodnosti, aby mohl
seed generátor náhodných čísel používaný k tvorbě kryptograficky
silných klíčů
OpenSSL umožňuje uživateli zvolit vlastní zdroj entropie pomocí
proměnné prostředí "RAND_FILE". Pokud není tato proměnná nastavena
nebo pokud určený soubor neposkytuje dostatek náhodnosti, OpenSSL
bude číst náhodná data z EGD soketu určeného touto volbou.
Pokud není tato volba určena (a není použit ekvivalentní příkaz při
startu), EGD není kontaktováno. EGD není na moderních Unixových
systémech s podporou /dev/random nutné.
Volby FTP
--ftp-user=uivatel
--ftp-password=heslo
Nastaví uživatelské jméno uivatel a heslo heslo pro FTP server.
Bez této volby, nebo odpovídající volby při startu, je jako výchozí
heslo použito -wget@, normálně používané pro anonymní FTP.
Další možností pro určení jména a hesla je samotné URL. Obě
metody odhalí použité heslo každému, kdo by se obtěžoval spustit
"ps". Tomu lze zabránit uskladněním hesel v .wgetrc nebo .netrc a
ochranou těchto souborů před ostatními uživateli nastavením práv
příkazem "chmod". Pokud se jedná o opravdu důležitá hesla,
nenechávejte je v těch souborech ležet---poté co Wget začal
stahovat, smažte je.
--no-remove-listing
Neodstraňovat dočasné soubory .listing generované při stahování z
FTP. Obvykle tyto soubory obsahují surové výpisy adresářů získané
z FTP serverů. Jejich ponechání se může hodit při ladění nebo pokud
potřebujete mít možnost jednoduše ověřit obsah adresářů na
vzdáleném serveru (např. pro ověření, že zrcadlo, které
provozujete, je kompletní).
Všimněte si, že ačkoliv Wget zapisuje do pevně daného jména
souboru, nepředstavuje tato vlastnost bezpečností díru ve scénáři,
kdy by uživatel vytvořil soubor .listing jako symbolický odkaz na
/etc/passwd apod. a požádal "roota", aby v jeho adresáři spustil
Wget. V závislosti na použitých volbách Wget buďto odmítne zapsat
do .listing, čímž operace globbing/recursion/time-stamping selžou
nebo symbolický odkaz smaže a nahradí opravdovým souborem .listing
nebo zapíše výpis do souboru .listing.slo.
Ačkoliv takováto situace nepředstavuje problém, "root" by nikdy
neměl spouštět Wget v adresáři nedůvěryhodného uživatele. Uživatel
může udělat něco tak jednoduchého jako odkaz index.html na
/etc/passwd a požádat "roota", aby spustil Wget s -N nebo -r, takže
soubor by byl přepsán.
--no-glob
Vypne FTP globbing. Globbing znamená používání speciálních znaků
shellu (olk), jako jsou *, ?, [ a ], pro získání více než
jednoho souboru ze stejného adresáře najednou, např.:
wget ftp://gnjilux.srk.fer.hr/*.msg
Jako výchozí je globbing v případě, že URL obsahuje nějaký
speciální znak vypnut. Tato volba slouží k permanentnímu zapnutí
nebo vypnutí globbingu.
URL lze dát do uvozovek, a tak zabránit expanzi v shellu. Globbing
způsobí, že Wget bude hledat výpis adresářů, který záleží na
operačním systému. Proto v současnosti funguje pouze s Unixovými
FTP servery (a těmi, které emulují výstup Unixového "ls").
--no-passive-ftp
Vypne používání pasivnho FTP režimu přenosu. Pasivní FTP požaduje,
aby se klient připojil k serveru pro sestavení datového spojení.
Pokud je stroj připojen k Internetu přímo, pasivní i aktivní FTP by
měly fungovat shodně. Za většinou konfigurací firewallů a NAT má
pasivní FTP větší šanci fungovat. Nicméně v případě vzácných
konfigurací firewallů aktivní FTP funguje a pasivní ne. Pokud máte
podezření, že se jedná o tento případ, použijte tuto volbu nebo
nastavte "passive_ftp=off" v init souboru.
--retr-symlinks
Při rekurzívním stahování FTP adresářů obvykle nejsou v případě
symbolických odkazů staženy odkazované soubory. Místo toho je v
lokálním souborovém systému vytvořen odpovídající symbolický odkaz.
Soubor, na který je odkazováno, není stažen, ledaže na něj při
rekurzívním stahování Wget narazí a stáhne jej tak jako tak.
Pokud je ale použito --retr-symlinks, jsou symbolické odkazy
následovány a soubory, na které odkazují, staženy. V současnosti
tato volba nezpůsobuje následování odkazů na adresáře a rekurzivní
stahování v nich, ale v budoucnu by to mělo být doplněno.
Všimněte si, že když je stahován soubor (ne adresář), který byl
určen na příkazové řádce, nemá tato volba žádný význam. Symbolické
odkazy jsou v takovém případě následovány vždy.
--no-http-keep-alive
Vypne ``keep-alive'' pro HTTP stahování. Normálně Wget požádá
server, aby ponechal spojení otevřené, takže při stahování více než
jednoho dokumentu ze stejného serveru budou staženy v rámci
stejného TCP spojení. Tak se ušetří čas a zároveň se sníží zátěž
serveru.
Tato volba se hodí v případě, kdy z nějakého důvodu, trvalá
(keep-alive) spojení nefungují, např. díky chybě v serveru nebo
neschopnosti skriptů na straně serveru vypořádat se se spojeními.
Volby pro rekurzívní stahování
-r
--recursive
Zapne rekurzívní stahování.
-l hloubka
--level=hloubka
Určí maximální depth rekurze. Výchozí hodnotou je 5.
--delete-after
Tato volba způsobí, že Wget smaže každý soubor pot, co jej
stáhnul. To se hodí pro pre-fetching populárních stránek přes
proxy, např.:
wget -r -nd --delete-after http://whatever.com/~popular/page/
Volby -r znamená rekurzívní stahování a -nd znamená nevytvářet
adresáře.
Všimněte si, že --delete-after maže soubory na lokálním počítači.
Neposílá příkaz DELE vzdáleným FTP serverům. Také si všimněte, že
když je zadáno --delete-after, je volba --convert-links ignorována,
takže soubory .orig nejsou vůbec vytvářeny.
-k
--convert-links
Jakmile je stáhnutí dokumentu dokončeno, konvertuje odkazy v něm
obsažené, aby byly použitelné pro lokální prohlížení. To ovlivňuje
nejen viditelné hypertextové odkazy, ale každou část dokumentu,
která odkazuje na externí obsah, jako jsou vložené obrázky, odkazy
na style sheets, odkazy na ne-HTML obsah atd.
Každý odkaz bude změněn jedním ze dvou způsobů:
* Odkazy na soubory, které Wget stáhnul, budou změněny na
relativní odkaz ukazující na stažený soubor.
Příklad: pokud stažený soubor /foo/doc.html odkazuje na
/bar/img.gif, který byl také stažen, bude odkaz v doc.html
změněn, aby odkazoval na ../bar/img.gif. Tento druh konverze
funguje spolehlivě pro libovolnou kombinaci adresářů.
* Odkazy na soubory, které Wget nestáhnul, budou změněny tak, aby
zahrnovaly jméno hostitele a absolutní cestu k umístění, na
které ukazují.
Příklad: pokud stažený soubor /foo/doc.html odkazuje na
/bar/img.gif (nebo na ../bar/img.gif), bude odkaz v doc.html
změněn, aby ukazoval na http://hostname/bar/img.gif.
Díky tomu lokální prohlížení spolehlivě funguje: pokud byl soubor
stažen, odkazuje se na lokální soubor; pokud ne, odkazuje se na
úplnou Internetovou adresu a ne na nefunkční odkaz. Také je možno
přesunout celou staženou strukturu do jiného adresáře.
Všimněte si, že Wget ví, které soubory byly staženy, až na konci
stahování. Proto je veškerá práce prováděná volbou -k provedena až
po stažení všech souborů.
-K
--backup-converted
Při konverzi souborů zachová původní verzi s příponou .orig. Má
vliv na chování podle volby -N.
-m
--mirror
Zapne volby vhodné pro zrcadlení, tj. rekurzi, časové značky,
nekonečnou hloubku rekurze a uchování výpisů FTP adresářů. Aktuálně
je ekvivalentní -r -N -l inf --no-remove-listing.
-p
--page-requisites
Tato volba způsobí, že Wget stáhne všechny soubory nezbytné pro
správné zobrazení dané HTML stránky. To zahrnuje věci jako obrázky,
zvuky a odkazované stylesheety.
Normálně nejsou při stahování jediné HTML stránky dokumenty
nezbytné pro její správné zobrazení stahovány. Volba -r spolu s -l
může pomoci, ale protože Wget nerozlišuje mezi externími a inline
dokumenty, obvykle zůstanou tzv. ``leaf documents'', kterým
potřebné soubory chybí.
Například dokument 1.html obsahuje tag "<IMG>", který odkazuje na
1.gif a tag "<A>" odkazující na externí dokument 2.html. Řekněme že
2.html je podobný, ale jeho obrázek je 2.gif aa odkazuje na 3.html.
A tak to může jít dál a dál.
Pokud je spuštěn příkaz:
wget -r -l 2 http://<site>/1.html
budou staženy soubory 1.html, 1.gif, 2.html, 2.gif a 3.html. Jak
vidíte souboru 3.html chybí pro správné zobrazení obrázek 3.gif,
protože Wget, aby zjistil konec rekurze, jednoduše počítá počet
skoků (nejvýše 2) od 1.html. Nicméně příkaz:
wget -r -l 2 -p http://<site>/1.html
způsobí stažení všech uvedených souborů a soubor 3.gif, který
3.html vyžaduje. Podobně
wget -r -l 1 -p http://<site>/1.html
způsobí stažení 1.html, 1.gif, 2.html a 2.gif. To svádí k
domněnce, že:
wget -r -l 0 -p http://<site>/1.html
stáhne pouze 1.html a 1.gif, ale tak tomu bohužel není, protože -l
0 je ekvivalentní -l inf---tj. nekonečné rekurzi. Pro stažení
jediné HTML stránky (případně více, jsou-li určeny na příkazovém
řádku nebo ve vstupním souboru s URL určeném -i) a všech jejích
nezbytných součástí prostě vynechejte -r a -l:
wget -p http://<site>/1.html
Všimněte si, že Wget se bude chovat, jakoby bylo použito -r, ale
bude stažena pouze jediná stránka a její nezbytné součásti. Odkazy
z této stránky nebudou následovány. Pro zajímavost - autor
dokumentace používá pro stažení jediné stránky včetně všech
nezbytností (i pokud jsou na různých serverech), aby byla při
lokálním prohlížení zobrazena bezchybně, ještě několik voleb navíc
k -p:
wget -E -H -k -K -p http://<site>/<document>
Na závěr: je dobré vědět, že Wget považuje za odkaz na externí
dokument jakékoliv URL určené v tagu "<A>", tagu "<AREA>" nebo tagu
"<LINK>" s výjimkou "<LINK REL="stylesheet">".
--strict-comments
Zapne striktní zpracování HTML komentářů. Výchozím chováním je
ukončení komentářů při prvním výskytu -->.
Podle specifikací jsou HTML komentáře vyjádřeny jako SGML
deklarace. Deklarace je zvláštní značení, které začíná s <! a
končí s >, jako např. <!DOCTYPE ...>, může obsahovat komentáře mezi
párem oddělovačů --. HTML komentáře jsou ``prázdné deklarace'',
SGML deklarace bez jakéhokoliv textu mimo komentář. Tudíž
<!--foo--> je platný komentář, stejně jako <!--one-- --two-->, ale
<!--1--2--> už nikoliv.
Na druhou stranu většina lidí, kteří píší HTML, považují cokoliv
vymezeného <!-- a --> za komentář, což není úplně to samé.
Například zápis typu <!------------> je platným komentářem jen
pokud je počet pomlček násobkem čtyř(!). Pokud není, sahá komentář
technicky až po další --, což může být až na druhém konci
dokumentu. Proto mnoho populárních prohlížečů úplně ignoruje
specifikaci a implementuje to, co uživatelé očekávají: komentáře
oddělené <!-- a -->.
Do verze 1.9 interpretoval Wget komentáře striktně, což mělo za
důsledek chybějící odkazy v mnoha www stránkách, které se v
prohlížečích zobrazovaly korektně, ale bohužel neobsahovaly
vyhovující komentáře. Od verze 1.9 včetně se Wget připojil ke
klientům implementujícím ``naivní' komentáře, končící při prvním
výskytu -->.
Pokud chcete z jakéhokoliv důvodu použít striktní zpracování
komentářů, použijte tuto volbu.
Volby pro rekurzivní Accept/Reject
-A acclist --accept acclist
-R rejlist --reject rejlist
Čárkou oddělené seznamy přípon souborů nebo vzorů, které mají být
akceptovány (accept) nebo odmítnuty (reject) (více v @pxref{Types
of Files}).
-D seznam-domn
--domains=seznam-domn
Určí domény, které mají být následovány. seznam-domn je seznam
domén oddělovaných čárkou. Všimněte si, že volba -H se tím nezapne.
--exclude-domains seznam-domn
Určí domény, které nemají být následovány.
--follow-ftp
Následovat FTP odkazy z HTML dokumentů. Bez této volby bude Wget
všechny FTP odkazy ignorovat.
--follow-tags=seznam
Wget má interní tabulku párů HTML tagů / atributů, které bere v
úvahu při hledání odkazovaných dokumentů během rekurzivního
stahování. Pokud chce uživatel brát v úvahu pouze podmnožinu
těchto tagů, měl by je určit touto volbou v seznamu s hodnotami
oddělenými čárkou.
--ignore-tags=seznam
Opak k volbě --follow-tags. Pro přeskočení některých HTML tagů při
rekurzivním vyhledávání dokumentů ke stažení je zadejte v seznamu s
hodnotami oddělovanými čárkou.
Kdysi byla tato volba nejlepší možností pro stažení jediné stránky
a jejích součástí - v příkazu jako:
wget --ignore-tags=a,area -H -k -K -r http://<site>/<document>
Nicméně autor této volby narazil na stránku s tagy typu "<LINK
REL="home" HREF="/">" a došlo mu, že určení ignorovaných tagů
nestačí. Člověk prostě nemůže říct Wgetu, aby ignoroval "<LINK>",
protože potom se nestáhnou stylesheets. Nyní je nejlepší možností
pro stažení jediné stránky a jejích součástí zvláštní volba
--page-requisites.
-H
--span-hosts
Při rekurzívním stahování povolí spanning across hosts.
-L
--relative
Bude následovat pouze relativní odkazy. Hodí se pro stažení určité
homepage bez nerelevantních věcí, i kdyby byly u stejného
hostitele.
-I seznam
--include-directories=seznam
Určí čárkou oddělovaný seznam adresářů, které mají být při
stahování následovány (více viz @pxref{Directory-Based Limits}).
Jednotlivé položky seznamu mohou obsahovat zástupné znaky (žolíky).
-X seznam
--exclude-directories=seznam
Určí čárkou oddělovaný seznam adresářů, které nemají být při
stahování následovány (více viz @pxref{Directory-Based Limits}).
Jednotlivé položky seznamu mohou obsahovat zástupné znaky (žolíky).
-np
--no-parent
Při rekurzivním stahování nikdy nevstoupí do rodičovského adresáře.
To je užitečné, neboť garantuje, že budou staženy pouze soubory pod
určitou úrovní.
PŘÍKLADY
Příklady jsou rozděleny do tří sekcí, volně založených na složitosti.
Jednoduché užití
o Řekněme, že potřebujete stáhnout nějaké URL. Prostě napište:
wget http://fly.srk.fer.hr/
o Ale co se stane, je-li připojení pomalé a soubor dlouhý? Spojení
pravděpodobně více než jednou selže předtím, než bude soubor
stažen. V tom případě se bude Wget pokoušet stáhnout soubor dokud
se mu to buďto nepodaří anebo nepřesáhne výchozí počet pokusů (tj.
20). Počet pokusů se dá jednoduše změnit na 45, aby se zajistilo
bezpečné stažení:
wget --tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg
o Nyní necháme Wget pracovat na pozadí a zapisovat postup do
logovacího souboru log. Psát pořád --tries unavuje, takže použijeme
-t.
wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg &
Ampersand na konci řádku způsobí, že Wget bude pracovat na pozadí.
Počet pokusů se nastaví na nekonečno volbou -t inf.
o Používání FTP je stejně jednoduché. Wget se postará o login a
heslo.
wget ftp://gnjilux.srk.fer.hr/welcome.msg
o Pokud je zadán adresář, Wget stáhne výpis adresáře, zpracuje jej a
zkonvertuje do HTML. Zkuste:
wget ftp://ftp.gnu.org/pub/gnu/
links index.html
Pokročilé užití
o Máte soubor obsahující URL, která chcete stáhnout? Použijte
přepínač -i :
wget -i <soubor>
Pokud určíte jako jméno souboru -, budou URL čtena ze standardního
vstupu.
o Vytvoř zrcadlo webové stránky GNU, hluboké 5 úrovní, se stejnou
adresářovou strukturou jako originál, pouze s jedním pokusem na
každý dokument a činnost zaznamenávej do gnulog:
wget -r http://www.gnu.org/ -o gnulog
o To samé, ale odkazy v HTML souborech změň tak, aby ukazovaly na
lokální soubory, takže je možné je prohlížet off-line:
wget --convert-links -r http://www.gnu.org/ -o gnulog
o Stáhni pouze jednu HTML stránku, ale zajisti, že jsou staženy
všechny elementy potřebné pro zobrazení stránky, jako jsou obrázky
a externí style sheets. Také zajisti, aby odpovídaly odkazy na
stažené soubory.
wget -p --convert-links http://www.server.com/dir/page.html
HTML stránka bude uložena do www.server.com/dir/page.html a
obrázky, stylesheets, atd. někde pod www.server.com/, v závislosti
na jejich původním umístění na serveru.
o To samé, ale bez adresáře www.server.com/. Ve skutečnosti stejně
nechci žádný z těch náhodných adresářů serveru ---pouze ulož
vechny ty soubory do podadresáře download/ v aktuálním adresáři.
wget -p --convert-links -nH -nd -Pdownload \
http://www.server.com/dir/page.html
o Stáhni index.html z www.lycos.com a ukaž hlavičky serveru:
wget -S http://www.lycos.com/
o Ulož hlavičky serveru se souborem, třeba pro další zpracování.
wget --save-headers http://www.lycos.com/
more index.html
o Stáhni první dvě úrovně wuarchive.wustl.edu a ulož je do /tmp.
wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/
o Chcete stáhnout všechny GIFy z adresáře na HTTP serveru. Zkusili
jste wget http://www.server.com/dir/*.gif, ale to nefungovalo,
protože stahování z HTTP nepodporuje globbing. V tom případě
použijte:
wget -r -l1 --no-parent -A.gif http://www.server.com/dir/
Delší, ale ve výsledku stejné. -r -l1 znamená rekurzivní stahování
s maximální hloubkou 1. --no-parent znamená, že odkazy na
rodičovský adresář se ignorují a -A.gif znamená, že mají být
staženy pouze soubory GIF files. -A "*.gif" by fungovalo stejně.
o Předpokládejme, že jste uprostřed stahování a Wget je přerušen.
Nyní nechcete znovu stahovat soubory, které už byly staženy.
Takže:
wget -nc -r http://www.gnu.org/
o Pokud chcete poslat HTTP nebo FTP jméno a heslo, použijte
odpovídající syntaxi URL.
wget ftp://hniksic:mojeheslo@unix.server.com/.emacs
Pozor - takové užití není vhodné v případě víceuživatelských
systémů, anžto vyjeví heslo každému, kdo použije "ps".
o Chcete výstupní dokumenty na standardní výstup a ne do souborů?
wget -O - http://jagor.srce.hr/ http://www.srce.hr/
You can also combine the two options and make pipelines to retrieve
the documents from remote hotlists:
wget -O - http://cool.list.com/ | wget --force-html -i -
Velmi pokročilé užití
o Pokud chcete udržovat zrcadlo nějaké stránky (nebo FTP
podadresářů), použijte volbu --mirror (-m), což je zkratka pro -r
-l inf -N. Můžete do souboru crontab vložit kontrolu serveru každou
neděli:
crontab
0 0 * * 0 wget --mirror http://www.gnu.org/ -o /home/me/weeklog
o Navíc ještě chcete konvertovat odkazy na lokální. Ale po přečtení
tohoto manuálu víte, že konverze odkazů se nesnáší s timestamping,
takže také chcete, aby Wget udržoval zálohu originálních HTML
souborů. Wget by se tedy spouštěl podobně jako:
wget --mirror --convert-links --backup-converted \
http://www.gnu.org/ -o /home/me/weeklog
o Ale lokální prohlížení nefunguje moc dobře, když jsou HTML soubory
uloženy s příponou jinou než .html, možná proto, že byly poslány
jako index.cgi. Takže chcete, aby Wget přejmenoval všechny soubory
poslané s content-type text/html nebo application/xhtml+xml na
jmno.html.
wget --mirror --convert-links --backup-converted \
--html-extension -o /home/me/weeklog \
http://www.gnu.org/
Nebo s použitím menšího množství písmenek:
wget -m -k -K -E http://www.gnu.org/ -o /home/me/weeklog
SOUBORY
/usr/local/etc/wgetrc
Výchozí umístění globlnho startovacího souboru.
.wgetrc
Startovací soubor uživatele.
CHYBY
Chyby v GNU Wgetu prosím oznamujte na <bug-wget@gnu.org>.
Před zasláním hlášení prosím postupujte podle následujících pravidel.
1. Ujistěte se, že to, co se děje, je opravdu chyba. Když Wget spadne,
je to chyba. Pokud se Wget nechová podle dokumentace, je to chyba.
Pokud se dějí divné věci, ale nejste si jist, jestli to tak má být,
může to také být chyba.
2. Zkuste chybu zopakovat za co možná nejjednodušších okolností.
Např. pokud Wget spadne při stahování wget -rl0 -kKE -t5 -Y0
http://yoyodyne.com -o /tmp/log, zkuste, jestli lze pád
reprodukovat a pokud ano, zda k němu dojde při použití menšího
počtu voleb. Můžete také spustit stahování na stránce, kde spadl,
pro případ, že by pád způsobovala určitá stránka.
Také, ačkoliv mne bude obsah vašeho souboru .wgetrc určitě zajímat,
před tím, než mi jej přiložíte k hlášení, vyzkoušejte, jestli se
chyba objeví i když jej odstraníte z dosahu. Relevantní části
.wgetrc přiložte pouze pokud se ukáže, že nastavení .wgetrc mají na
chybu vliv.
3. Prosím spusťte Wget s volbou -d a pošlete výsledný výstup (nebo
jeho relevantní části). Pokud byl Wget zkompilován bez podpory
ladícího výstupu, překompilujte jej---hledání chyb je tak daleko
jednodušší.
Pozn.: Před odesláním se prosím ujistěte, že jsou z ladícího
výstupu odstraněny veškeré potenciálně citlivé informace. Volba
"-d" je nijak nevyhledává, ale záznam bude obsahovat téměř úplný
přepis komunikace Wgetu se serverem, což může zahrnovat hesla a
části stahovaných dat. Protože chyby jsou veřejně archivovány,
můžete předpokládat, že všechna chybová hlášení jsou veřejná.
4. Pokud Wget spadl, zkuste ho spustit v debuggeru, např. "gdb `which
wget` core" a pro získání backtrace napište "where". To nemusí
fungovat v případě, že administrátor zakázal soubory core, ale
neškodí to zkusit.
DALŠÍ INFORMACE
Zápis v GNU Info pro wget.
AUTOR
Původně napsal Hrvoje Niksic <hniksic@xemacs.org>.
COPYRIGHT
Copyright (c) 1996--2005 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``GNU Free
Documentation License'', with no Front-Cover Texts, and with no Back-
Cover Texts. A copy of the license is included in the section entitled
``GNU Free Documentation License''.