WGET(1) GNU Wget WGET(1) NAZWA wget - nieinteraktywny program do pobierania z sieci SKLADNIA wget [opcja]... [URL]... OPIS GNU Wget jest wolnym programem narzedziowym do pobierania plikow z sieci. Obsluguje protokoly HTTP, HTTPS i FTP, a takze pobieranie poprzez serwery proxy HTTP. Wget jest nieinteraktywny, co pozwala mu dzialac w tle, w czasie gdy uzytkownik nie jest zalogowany. Dzieki temu uzytkownik moze rozpoczac pobieranie i rozlaczyc sie z komputerem, pozwalajac Wgetowi na zakonczenie pracy. Wiekszosc przegladarek WWW wymaga ciaglej obecnosci czlowieka, co staje sie uciazliwe przy pobieraniu duzej ilosci danych. Wget potrafi podazac za odnosnikami zawartymi w stronach HMTL, XHTML i CSS oraz tworzyc lokalne wersje zdalnych witryn, w pelni odtwarzajac strukture katalogow oryginalnej strony. Jest to czasami nazywane ,,pobieraniem rekurencyjnym". Podczas takiego dzialania Wget respektuje ustalenia Standardu Robot Exclusion (/robots.txt). Mozliwe jest poinstruowanie programu, by w pobieranych plikach przeksztalcal odnosniki tak, aby wskazywaly na lokalne kopie, do przegladania bez polaczenia. Wget zostal zaprojektowany tak, by dzialac solidnie rowniez przy powolnych badz niestabilnych polaczeniach. Jezeli pobieranie nie udaje sie z powodu problemow z siecia, ponawia proby az do sciagniecia calosci pliku. Jesli dany serwer obsluguje taka mozliwosc, Wget nakaze kontynuacje pobierania od miejsca, w ktorym przerwano. OPCJE Skladnia opcji Wget uzywa GNU getopt do przetwarzania argumentow wiersza polecen, wiec kazda opcja ma dlugi i krotki format. Dlugie opcje sa latwiejsze do zapamietania, lecz wpisuje sie je dluzej. Mozna dowolnie laczyc oba style zapisu lub podac opcje po argumentach wiersza polecen. Mozna wiec uzyc: wget -r --tries=10 http://fly.srk.fer.hr/ -o log Spacja pomiedzy opcja akceptujaca argument i argumentem moze byc pominieta. Zamiast -o log mozna wpisac -olog. Mozna umiescic kilka opcji, ktore nie wymagaja argumentow razem, tak jak ponizej: wget -drc Jest to rownowazne zapisowi: wget -d -r -c Poniewaz opcje moga byc podane po argumentach, moze byc konieczne oddzielenie ich za pomoca --. Ponizsze polecenie sprobuje pobrac URL -x, zapisujac niepowodzenie do log: wget -o log -- -x Opcje, ktore akceptuja listy oddzielone przecinkami, respektuja konwencje podania pustej listy, ktora usuwa ich wartosc. Jest to przydatne do wyczyszczenia ustawien .wgetrc np. jesli .wgetrc uzytkownika ustawia "exclude_directories" na /cgi-bin, to ponizszy przyklad najpierw zresetuje wartosc, a nastepnie ustawi ja na /~nobody i /~somebody. Mozna rowniez wyczyscic liste w .wgetrc. wget -X "" -X /~nobody,/~somebody Wiekszosc opcji, ktora nie akceptuje argumentow sa opcjami logicznymi tzn. takimi, ktorych stan mozna opisac zmienna zero-jedynkowa (,,logiczna"). Na przyklad --follow-ftp mowi Wgetowi, aby podazal za linkami FTP z plikow HTML, a --no-glob nakazuje nieprzeprowadzania rozwijania masek URL-i FTP. Opcje logiczne sa albo pozytywne, albo negatywne (te zaczynaja sie od --no). Wszystkie takie opcje maja kilka wlasnosci. Jezeli nie zaznaczono inaczej, to przyjmuje sie, ze domyslne zachowanie jest przeciwne niz to, ktore zapewnia opcja. Na przyklad udokumentowane istnienie --follow-ftp wskazuje, ze domyslnie nie podaza sie za linkami FTP ze stron HTML. Dzialanie opcji pozytywnych mozna odwrocic dodajac --no- do ich nazw; analogicznie w przypadku opcji negatywnych (wylaczajacych) - usuwajac przedrostek --no-. Moze to wygladac na niepotrzebne -- skoro domyslnym dzialaniem opcji pozytywnych jest nie robienie czegos, to po co zapewniac metode jawnego wylaczania ich? Wynika to z dzialania pliku startowego, ktory moze zmienic wartosci domyslne. Przykladowo, skorzystanie z wpisu follow_ftp = on w pliku .wgetrc powoduje, ze Wget domyslnie podaza (follow) za dowiazaniami FTP, natomiast opcja --no-follow-ftp jest jedynym sposobem na przywrocenie wartosci pierwotnie domyslnych z wiersza polecen. Podstawowe opcje uruchamiania -V --version Wyswietla wersje Wgeta. -h --help Wypisuje komunikat pomocy, opisujacy wszystkie opcje, jakie mozna przekazac Wgetowi w wierszu polecen. -b --background Przechodzi w tlo natychmiast po rozpoczeciu pracy. Jesli nie podano pliku wyjsciowego za pomoca -o, wyjscie jest przekierowywane do wget-log. -e polecenie --execute polecenie Wykonuje polecenie tak, jakby bylo czescia .wgetrc. Polecenie wywolane w ten sposob zostanie wykonane po poleceniach z .wgetrc, wiec bedzie miec nad nimi priorytet. Aby podac kilka polecen wgetrc, nalezy uzyc opcji -e wielokrotnie. Opcje dziennika i pliku wejsciowego -o dziennik --output-file=dziennik Rejestruje wszystkie komunikaty w pliku dziennika. Normalnie sa zglaszane na standardowym wyjsciu bledow. -a dziennik --append-output=dziennik Dodaje komunikaty na koncu pliku dziennika. Jest to to samo, co -o, tyle ze dopisuje do dziennika zamiast nadpisywac stary. Jesli plik dziennik nie istnieje, jest tworzony. -d --debug Wlacza wyjscie diagnostyczne, czyli wypisywanie rozmaitych informacji waznych dla tworcow Wget, gdy nie dziala on poprawnie. Administrator systemu mogl skompilowac Wget bez obslugi trybu usuwania bledow, wowczas -d nie bedzie dzialac. Nalezy zauwazyc, ze kompilacja z obsluga diagnostyki jest zawsze bezpieczna Wget skompilowany w ten sposob nie bedzie wypisywal zadnych informacji diagnostycznych dopoki nie zazada sie tego opcja -d. -q --quiet Tryb cichy. Wylacza wyjscie Wget. -v --verbose Pelne wyjscie, z wszystkimi dostepnymi danymi. Jest to opcja domyslna. -nv --no-verbose Niepelne wyjscie -- wylacza pelne wyjscie, ale nie ucisza calkowicie (to robi sie opcja -q); komunikaty o bledach i podstawowe informacje beda nadal wypisywane. --report-speed=typ Wypisuje przepustowosc jako typ. Jedyna akceptowana wartoscia sa bity (bits). -i plik --input-file=plik Odczytuje URL-e z lokalnego lub zewnetrznego pliku. Jesli jako plik podano -, to URL-e sa czytane ze standardowego wejscia (aby czytac z pliku nazwanego -, nalezy uzyc zapisu ./-). Czyta URL-e z pliku wejsciowego plik, w zwiazku z czym nie trzeba ich podawac w wierszu polecen. Jesli URL-e podano zarowno w wierszu polecen, jak i w pliku wejsciowym, to pierwsze zostana pobrane pliki wymienione w wierszu polecen. Jesli nie podano opcji --force-html, to plik powinien skladac sie z zestawu URL-i - po jednym na wiersz. Jednakze jesli zostanie podana opcja force-html, to plik bedzie traktowany jak dokument html. Moga sie wowczas pojawic klopoty z odnosnikami wzglednymi, ktore mozna rozwiazac dodajac "" do pliku lub podajac base=url w wierszu polecen. Jesli plik jest plikiem zewnetrznym, to dokument zostanie potraktowany automatycznie jako html, jesli jego Content-Type pasuje do text/html. Co wiecej, polozenie pliku zostanie uzyte jako href, jesli nie podano innego. Jesli plik jest lokalny, w systemach ktore to obsluguja, zostanie otworzony ze znacznikiem "O_NONBLOCK", w celu umozliwienia nieblokujacych odczytow z pliku. Wget bedzie probowal kontynuowac odczyt z pliku do momentu osiagniecia jego konca lub zamkniecia go. W ten sposob mozna strumieniowac liste plikow do pobrania, przy czym lista ta moze byc generowana dynamicznie w czasie wykonywania procesu. Obecnie funkcja ta nie jest dostepna na platformach Windows. --input-metalink=plik Pobiera pliki wyszczegolnione w lokalnym pliku Metalink. Obslugiwany jest Metalink w wersji 3 i 4. --keep-badhash Pozostawia pobrane pliki Metalink z nieprawidlowym skrotem. Dodaje .badhash do nazwy plikow Metalink z niezgodna suma kontrolna (nie nadpisujac przy tym istniejacych plikow). --metalink-over-http Korzysta z zadan HTTP HEAD zamiast GET i pobiera metadane Metalink z naglowkow odpowiedzi. Nastepnie przelacza sie na pobrania Metalink. Jesli nie odnajdzie prawidlowych metadanych Metalink, zapasowo dokona standardowego pobrania HTTP. Wlacza pobieranie/przetwarzanie plikow Content-Type: application/metalink4+xml. --metalink-index=numer Ustawia numer kolejny metaurl application/metalink4+xml Metalink na numer. Dostepne sa numery od 1 do calkowitej dostepnej liczby ,,application/metalink4+xml". Podanie 0 lub inf spowoduje wybranie pierwszego poprawnego. Metaurle, takie jak z --metalink-over-http mogly byc posortowane wedlug wartosci klucza priorytetu; nalezy o tym pamietac podajac prawidlowy numer. --preferred-location Ustawia preferowane polozenie zasobow Metalink. Wartosc jest stosowana, gdy dostepnych jest wiele zasobow o tym samym priorytecie. --xattr Korzysta z atrybutow rozszerzonych systemu plikow, aby zachowac oryginalny URL i wartosc naglowka Referer HTTP, jesli byl uzyty. Prosze pamietac, ze URL mogl zawierac prywatne informacje, takie jak tokeny dostepu lub inne poswiadczenia. -F --force-html Kiedy wejscie jest czytane z pliku, wymusza aby bylo traktowane jako plik HTML. Pozwala to na pobieranie wzglednych odnosnikow z istniejacych plikow HTML znajdujacych sie na lokalnym dysku naszego komputera, przez dodanie znacznika "" do pliku HTML lub uzycie opcji base. -B URL --base=URL Przeksztalca linki wzgledne uzywajac URL-i jako punktu odniesienia, przy odczytywaniu linkow z pliku HTML okreslonego opcja -i/--input-file (razem z --force-html lub gdy plik zostal pobrany z serwera zewnetrznego, opisujacego go jako HTML). Jest to odpowiednik obecnosci znacznika BASE w pliku wejsciowym HTML, z wartoscia URL jako wartosc atrybutu href. Na przyklad przy podaniu http://foo/bar/a.html do URL i odczytaniu przez Wgeta ../baz/b.html z pliku wejsciowego, zostanie on przeksztalcony do http://foo/baz/b.html. --config=PLIK Okresla polozenie pliku konfiguracyjnego, ktory ma byc uzyty zamiast domyslnego (domyslnych). Podanie --no-config wylaczy odczytywanie plikow konfiguracyjnych. Jesli uzyje sie jednoczesnie --config i --no-config, opcja --no-config jest ignorowana. --rejected-log=dziennik Zapisuje wszystkie odmowione URL-e do dziennika jako wartosci rozdzielone przecinkiem. Wartosci zawieraja powod odmowy, URL oraz URL macierzysty, w ktorym go znaleziono. Opcje pobierania --bind-address=ADRES Podczas tworzenia klienckich polaczen TCP/IP, wiaze z lokalnym komputerem, przez "bind()", zadany ADRES. ADRES mozna podac jako nazwe hosta lub adres IP. Moze sie przydac jesli dany komputer ma przypisane kilka adresow IP. --bind-dns-address=ADRES [tylko libcares] Adres ten przeslania trase dla zadan DNS. Opcja ta jest przydatna w polaczeniu z --dns-servers, do ominiecia standardowych ustawien z /etc/resolv.conf. ADDRES nalezy podac jako adres IPv4 lub IPv6. Aby opcja byla dostepna, Wget musi byc zbudowany z biblioteka libcares. --dns-servers=ADRESY [tylko libcares] Podane adres(y) przeslaniaja standardowe adresy serwerow nazw np. skonfigurowane w /etc/resolv.conf. ADRESY mozna podac jako adresy IPv4 lub IPv6, oddzielajac je przecinkami. Aby opcja byla dostepna, Wget musi byc zbudowany z biblioteka libcares. -t liczba --tries=liczba Ustawia liczbe prob na liczbe. 0 lub inf oznacza probowanie bez konca. Domyslna wartosc wynosi 20, z wyjatkiem bledow krytycznych, takich jak ,,odrzucono polaczenie" lub ,,nie znaleziono" (404), gdy nie podejmuje sie ponownych prob. -O plik --output-document=plik Dokumenty nie beda zapisywane do odpowiednich plikow, ale wszystkie zostana sklejone i zapisane do pliku. Jesli jako plik podano -, dokumenty beda zapisane na standardowe wyjscie, wylaczajac konwersje linkow (prosze uzyc ./-, aby zapisac do pliku o nazwie -). Uzycie -O nie jest przeznaczone jako ,,uzyj nazwy pliku zamiast tej z URL-a", lecz jest to odpowiednik przekierowania powloki: wget -O plik http://foo jest zaprojektowane do dzialania jak wget -O - http://foo > plik; plik zostanie natychmiast przyciety, i cala zawartosc pobierania zostanie do niego zapisana. Z tego powodu, -N (sprawdzanie znacznika czasowego) nie jest obslugiwane w polaczeniu z -O: poniewaz plik jest zawsze nowo tworzony, bedzie mial on zawsze calkiem nowy znacznik czasowy. Przy uzyciu tej kombinacji wyswietlane jest ostrzezenie. Podobnie, uzywanie -r lub -p z -O moze nie dzialac zgodnie z przewidywaniami: Wget nie bedzie pobieral pierwszego pliku do pliku, a reszty do zwyklych plikow; cala zawartosc pobierania zostanie umieszczona w pliku. Zostalo to wylaczone w wersji 1.11, lecz powrocilo (z ostrzezeniem) w 1.11.2, poniewaz sa przypadki, gdzie takie zachowanie moze miec sens. Laczenie z opcja -nc jest mozliwe tylko, gdy podany plik wyjsciowy nie istnieje. Prosze zauwazyc, ze kombinacja z -k jest dozwolona tylko przy pobieraniu pojedynczego dokumentu, poniewaz w takim przypadku, wszystkie relatywne URI zostana przeksztalcone w URI zewnetrzne. Opcja -k nie ma sensu przy wielu URI, ktore zostaly pobrane do pojedynczego pliku, stad -k moze byc uzyte tylko, jesli wyjsciem jest zwykly plik. -nc --no-clobber Jesli plik jest pobierany wiecej niz raz do tego samego katalogu, zachowanie Wgeta zalezy od kilku opcji, miedzy innymi -nc. W pewnych przypadkach istniejacy lokalny plik bedzie nadpisany lub przebity (ang. clobbered), przy powtorzeniu sciagania. W innych przypadkach zostanie zachowany. Przy uruchomieniu Wget bez opcji -N, -nc, -r lub -p pobranie tego samego pliku do tego samego katalogu spowoduje pozostawienie pierwotnego egzemplarza pliku i nadanie drugiemu nazwy plik.1. Gdy plik bedzie sciagany kolejny raz, trzeci egzemplarz otrzyma nazwe file.2, i tak dalej (jest tak rowniez z opcja -nd, nawet jesli dziala rownoczesnie -r lub -p). Przy podanej opcji -nc, zachowanie takie jest wstrzymywane, a Wget odmawia pobrania nowszych kopii pliku. Dlatego tez, ,,no-clobbe" jest w rzeczywistosci zla nazwa dla tego trybu -- nie chroni on przed nadpisywaniem (gdyz temu zapobiegaja juz numeryczne przyrostki), ale przed zachowywaniem wielu wersji pliku. Przy uruchomieniu Wget z -r lub -p, ale bez -N, -nd czy -nc, ponowne sciagniecie pliku powoduje, ze nowa kopia po prostu nadpisuje stara. Dodanie -nc zapobiega takiemu zachowaniu, skutkujac zamiast tego zachowaniem pierwotnej wersji i ignorowaniem ewentualnych nowych kopii z serwera. Przy uruchomieniu Wget z -N, z opcja -r lub -p albo bez niej, decyzja, czy sciagac nowa wersje pliku czy tez nie, zalezy od znacznikow czasu (dat modyfikacji) i rozmiarow lokalnego i zdalnego pliku. -nc nie mozna podawac rownoczesnie z -N. Laczenie z -O/--output-document jest mozliwe tylko, gdy podany plik wyjsciowy nie istnieje. Prosze zauwazyc, ze jesli podano -nc, pliki z przyrostkami .html lub .htm beda odczytywane z dysku i przetwarzane tak, jakby zostaly pobrane z sieci. --backups=kopia-zapasowa Przed nadpisaniem pliku, istniejacy jest zachowywany poprzez dodanie przyrostka .1 (_1 w VMS) do nazwy pliku. Przy kolejnym przebiegu kolejne kopie zapasowe maja nazwy zmieniane na .2, .3 itd., az do osiagniecia liczby kopii-zapasowych (gdy ja przekrocza sa usuwane). --no-netrc Nie probuje uzyskiwac poswiadczen z pliku .netrc. Domyslnie plik .netrc jest przeszukiwany pod katem poswiadczen, jesli ich nie podano w wierszu polecenia, a konieczne jest uwierzytelnienie. -c --continue Kontynuuje pobieranie czesciowo sciagnietego pliku. Przydatne, gdy chcemy dokonczyc sciaganie rozpoczete w poprzednim przebiegu Wgeta lub przez inny program. Przyklad: wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z Jesli w biezacym katalogu istnieje plik ls-lR.Z, Wget przyjmie, ze jest to poczatkowy fragment zdalnego pliku i zazada od serwera kontynuacji pobierania od przesuniecia rownego dlugosci lokalnego pliku. Prosze zauwazyc, ze nie ma potrzeby podawania tej opcji jesli chcemy tylko, by aktualnie wywolany Wget ponownie probowal sciagac plik, w polowie ktorego zostalo zerwane polaczenie. Jest to zachowanie domyslne. Opcja -c wplywa tylko na wznawianie pobran zaczetych przed biezacym wywolaniem Wget i tylko dla tych plikow, ktorych lokalne kopie nadal istnieja. Bez -c, polecenie z poprzedniego przykladu pobralby po prostu zdalny plik do ls-lR.Z.1, zostawiajac w spokoju obciety plik ls-lR.Z. Jesli uzyjemy -c dla niepustego pliku, a okaze sie, ze serwer nie obsluguje kontynuacji sciagania, Wget zrestartuje pobieranie od zera i calkowicie nadpisze istniejacy plik. Poczawszy od Wget 1.7, jesli uzyjemy -c dla pliku, ktorego rozmiar jest taki sam, jak na serwerze, to Wget odmowi sciagniecia pliku i wypisze komunikat objasniajacy. Tak samo dzieje sie, gdy plik jest mniejszy na serwerze niz lokalnie (prawdopodobnie dlatego, ze zostal zmieniony na serwerze od czasu naszej ostatniej proby sciagania) - poniewaz ,,kontynuacja" jest bezsensowna, pobieranie nie zachodzi. Z drugiej strony, przy stosowaniu -c, kazdy plik, ktory jest wiekszy na serwerze niz lokalnie bedzie uwazany za nie w pelni sciagniety. Wowczas pobranych i doczepionych na koniec pliku lokalnego zostanie tylko "(wielkosc(zdalny) - wielkosc(lokalny))" bajtow. W pewnych przypadkach takie zachowanie jest pozadane na przyklad, mozna skorzystac z wget -c do sciagniecia tylko nowej porcji danych, dopisanej na koncu zbioru danych czy pliku dziennika. Jednakze, jesli plik na serwerze jest wiekszy dlatego, ze zostal zmieniony, a nie tylko doklejono do niego dane, to w efekcie otrzymamy znieksztalcony plik. Wget w zaden sposob nie moze sprawdzic, czy lokalny plik jest poprawna czescia poczatkowa zdalnego. Nalezy na to szczegolnie uwazac stosujac -c w polaczeniu z -r, gdyz kazdy plik bedzie uwazany za kandydata na ,,nieukonczone sciaganie". Inna sytuacja, w ktorej przy korzystaniu z -c uzyskuje sie znieksztalcony plik, zachodzi, gdy mamy do czynienia z ulomnym serwerami posredniczacymi HTTP, wstawiajacym lancuch ,,transfer interrupted" do lokalnego pliku. W przyszlosci bedzie moze dodana opcja ,,rollback", obslugujaca ten przypadek. Prosze zauwazyc, ze -c dziala tylko z serwerami FTP i HTTP, ktore obsluguja naglowek "Range". --start-pos=PRZESUNIECIE Rozpoczyna pobieranie od niezerowej pozycji PRZESUNIECIE. Przesuniecie mozna podac w bajtach, kilobajtach (z przyrostkiem k), megabajtach (z przyrostkiem m) itd. --start-pos ma pierwszenstwo nad --continue. Gdy poda sie jednoczesnie --start-pos i --continue, wget wypisze ostrzezenie, a nastepnie bedzie dzialac, jak gdyby nie uzyto --continue. Konieczna jest obsluga kontynuacji pobierania po stronie serwera, w przeciwnym przypadku opcja --start-pos nic nie da. Wiecej szczegolow w opisie opcji -c. --progress=typ Umozliwia wskazanie typu wskaznika postepu. Dozwolonymi rodzajami wskaznika sa ,,dot" (kropka) i ,,bar" (pasek). Domyslnie stosowany jest wskaznik ,,bar". Rysowany jest wowczas pasek postepu zlozony ze znakow graficznych ASCII (zwany czasem wskaznikiem ,,termometrowym"), wskazujacy stan pobierania. Jezeli wyjsciem programu nie jest TTY, to domyslnie zostanie uzyty wskaznik typu ,,dot". Aby przelaczyc sie na zapis kropkowy nalezy uzyc opcji --progres=dot. Sledzi on pobieranie wypisujac kropki, a kazda oznacza okreslona ilosc pobranych danych. Wskaznik postepu typ moze rowniez przyjac jeden lub wiecej parametrow. Parametry roznia sie, w zaleznosci od danego typu. Parametry do typu podaje sie, dolaczajac je pod dwukropku (:), w nastepujacy sposob --progress=typ:parametr1:parametr2. Przy korzystaniu z tego wskaznika, mozna ustalic styl. Wykonuje sie to podajac typ wskaznika w postaci dot:styl. W roznych stylach pojedynczej kropce przypisuje sie rozne znaczenie. W stylu "default" kazda kropka oznacza 1K (tysiac), grupa liczy dziesiec kropek, a wiersz 50 kropek. Styl "binary" jest bardziej ,,komputerowy" - 8K dla kropki, 16-kropkowe grupy i 48 kropek w wierszu (co daje 384K na wiersz). Przy pobieraniu duzych plikow odpowiedni jest styl "mega" - kazda kropka symbolizuje pobrane 64K, w grupie jest osiem kropek, a w wierszu 48 (wiec kazdy wiersz zawiera 3M). Jesli "mega" jest niewystarczajace, mozna uzyc "giga" - kazda kropka symbolizuje 1M, w grupie jest osiem kropek, a w wierszu 32 (co daje 32M na wiersz). Przy wybraniu --progress=bar sa dostepne obecnie dwa parametry: force i noscroll. Jesli wyjscie nie jest kierowane na TTY, pasek postepu zawsze zastepczo zostanie zmieniony na ,,dot", nawet gdy przy wywolaniu Wget podano --progress=bar. To zachowanie mozna zmienic i wymusic wyjscie w postaci ,,bar", za pomoca parametru ,,force": --progress=bar:force. Domyslnie, pasek postepu w stylu bar przewija nazwe pliku z lewej do prawej, w trakcie pobierania pliku, jesli nazwa pliku przekracza maksymalna dozwolona dlugosc przydzielona na wyswietlanie nazwy. W niektorych przypadkach, takich jak przy korzystaniu z --progress=bar:force, mozna nie chciec korzystac z funkcji przewijania nazwy w pasku postepu. Podajac parametr ,,noscroll", Wget zostanie zmuszony do wyswietlenia najwiekszej mozliwej do pokazania czesci nazwy, nie korzystajac z przewijania. Prosze zauwazyc, ze domyslny styl mozna ustawic za pomoca polecenia "progress" w swoim pliku .wgetrc. Ustawienie mozna przeslonic w wierszu polecen. Na przyklad, aby wymusic wyjscie paskowe bez przewijania, nalezy uzyc --progress=bar:force:noscroll. --show-progress Zmusza wget do wyswietlania paska postepu niezaleznie od ustawienia szczegolowosci. Domyslnie, wget wyswietla pasek postepu tylko w trybie pelnego wyjscia. Mozna jednak preferowac wyswietlanie paska postepu na ekranie z innymi trybami szczegolowosci, takimi jak --no-verbose lub --quiet. Czesto jest to oczekiwane rozwiazanie, przy wywolywaniu wget do pobieraniu wielu mniejszych/wiekszych plikow. W takim przypadku wget mozna wywolac z tym parametrem, aby uzyskac znacznie przejrzystrze wyjscie na ekranie. Opcja ta wymusi rowniez wypisanie paska postepu na stderr, gdy polaczy sie ja z opcja --output-file. -N --timestamping Wlacza stosowanie znacznikow czasu (time-stamping). --no-if-modified-since Nie wysyla naglowka If-Modified-Since (,,jesli zmodyfikowano od") w trybie -N. W zamian wysyla wstepne zadanie HEAD. Opcja ma znaczenie tylko w trybie -N. --no-use-server-timestamps Nie ustawia znacznika czasu pliku lokalnego na podstawie znacznika z serwera. Domyslnie, gdy plik jest pobierany, uzywany jest znacznik czasu pliku zdalnego. Pozwala to na uzycie opcji --timestamping w kolejnych wywolaniach wgeta. Czasem korzystniej jest ustawic znacznik czasu na podstawie rzeczywistego czasu pobierania; w tym celu powstala opcja --no-use-server-timestamps. -S --server-response Wypisuje naglowki wysylane przez serwery HTTP i odpowiedzi wysylane przez serwery FTP. --spider Wywolany z ta opcja, Wget bedzie zachowywal sie jak sieciowy pajak (Web spider), to znaczy, ze nie bedzie pobieral stron, a jedynie sprawdzal, czy tam sa. Mozna to wykorzystac to sprawdzenia zakladek (bookmarks), na przyklad tak: wget --spider --force-html -i bookmarks.html Ta funkcja wymaga jeszcze wiele pracy, by Wget osiagnal mozliwosci zblizone do prawdziwych pajakow WWW. -T sekundy --timeout=sekundy Ustawia sieciowy czas oczekiwania na sekundy sekund. Jest to odpowiednik jednoczesnego podania --dns-timeout, --connect-timeout i --read-timeout. Podczas interakcji z siecia, Wget moze sprawdzic czas oczekiwania i przerwac operacje, gdy zabiera zbyt duzo czasu. Zapobiega to takim anomaliom jak zawieszenie odczytu i niekonczace sie laczenie. Jedynym domyslnym czasem oczekiwania jest 900 sekundowe oczekiwanie na odczyt. Ustawienie ,,0", wylaczy go. Nie poleca sie zmian domyslnych ustawien, chyba ze wie sie, co sie robi. Wszystkie opcje zwiazane z czasami oczekiwania akceptuja wartosci dziesietne oraz ulamki sekundowe, np. 0.1 jest poprawna (choc bezsensowna) wartoscia czasu oczekiwania. Wartosci mniejsze od sekundy sa przydatne do sprawdzania czasu odpowiedzi serwera lub w celu testowania opoznienia sieciowego. --dns-timeout=sekundy Ustawia czas translacji adresow DNS na sekundy sekund. Jesli translacja DNS nie zostanie ukonczona w podanym czasie, zakonczy sie bledem. Domyslnie, nie ma ograniczen czasowych innych niz wynikajacych z implementacji bibliotek systemowych. --connect-timeout=sekundy Ustawia czas oczekiwania polaczenia na sekundy sekund. Polaczenia TCP, ktore potrzebuja wiecej czasu do poprawnego nawiazania, zostana przerwane. Domyslnie, czas oczekiwania polaczenia nie jest zdefiniowany, z wylaczeniem rozwiazan zaimplementowanych w bibliotekach systemowych. --read-timeout=sekundy Ustawia czasy oczekiwania odczytu (i zapisu) na sekundy sekund. ,,Czas" odnosi sie tu do czasu bezczynnosci, tzn. jesli w dowolnej chwili pobierania, dane nie sa otrzymywane przez wiecej niz podana liczba sekund, to odczyt zwraca blad, a pobieranie jest restartowane. Opcja ta nie wplywa bezposrednio na czas trwania samego pobierania. Zdalny serwer moze oczywiscie przerwac polaczenie wczesniej, niz wynika to z wymagan tej opcji. Domyslny czas oczekiwania odczytu wynosi 900 sekund. --limit-rate=wielkosc Ogranicza predkosc pobierania do wielkosc bajtow na sekunde. Wielkosc moze byc wyrazona w bajtach, kilobajtach (z przyrostkiem k lub megabajtach (z przyrostkiem m. Na przyklad --limit-rate=20k ograniczy predkosc pobierania do 20 KB/s. Jest to przydatne, gdy z jakiegos powodu nie chce sie pozwolic Wgetowi na zajecie calej przepustowosci lacza. Opcja wymaga liczb dziesietnych, polaczonych z reguly z odpowiednim przyrostkiem; poprawna wartoscia jest na przyklad --limit-rate=2.5k. Prosze zauwazyc, ze implementacje Wgeta jest wstrzymywanie transferu na pewny czas po tym, gdy odczyt sieciowy zabiera mniej czasu niz wynikaloby to z zadanej przepustowosci. Ta strategia skutkuje ostatecznie spowolnieniem transferu TCP do wartosci przyblizonej do podanej. Osiagniecie zbalansowanego poziomu moze chwile potrwac, dlatego prosze sie nie dziwic, ze ograniczanie przepustowosci nie dziala zbyt dobrze w przypadku bardzo malych plikow. -w sekundy --wait=sekundy Odczekuje zadana liczbe sekund pomiedzy kolejnymi pobraniami. Zaleca sie uzywanie tej opcji, gdyz zmniejsza obciazenie serwera dzieki rzadszym zadaniom. Czas, zamiast w sekundach, mozna podac w minutach dodajac przyrostek "m", w godzinach - dodajac "h" lub w dniach - dodajac "d". Okreslanie duzej wartosci tej opcji przydaje sie jesli siec lub komputer docelowa sa wylaczone. Wowczas Wget moze odczekac wystarczajaco dlugo, by rozsadnie spodziewac sie, ze przed ponowna proba blad sieci zostal naprawiony. Na czas oczekiwania okreslony przez te opcje wplywa --random-wait. --waitretry=sekundy Opcje te stosujemy jesli nie chcemy, by Wget czekal pomiedzy kazdym pobraniem, a tylko pomiedzy ponawianymi probami nieudanych pobran. Wget zastosuje odczekiwanie liniowe (linear backoff), czekajac 1 sekunde po pierwszym niepowodzeniu z danym plikiem, nastepnie 2 sekundy po drugim niepowodzeniu z tym plikiem, az do maksymalnej liczby sekund, jaka podano. Zatem, wartosc 10 faktycznie spowoduje, ze Wget bedzie odczekiwal lacznie do (1 + 2 + ... + 10) = 55 sekund na kazdy plik. Domyslna wartosc jaka zostanie przyjeta, wynosi 10 sekund. --random-wait W niektorych z osrodkow wykonywana jest analiza plikow dziennikowych (tzw. logow), ktora ma na celu zidentyfikowanie programow do pobierania, takich jak Wget. Polega ona na wyszukiwaniu statystycznie znaczacych podobienstw miedzy roznicami czasu, jaki uplynal pomiedzy kolejnymi zadaniami. Ta opcja powoduje, ze dla zamaskowania przed takimi analizami obecnosci Wgeta czas pomiedzy zadaniami bedzie sie wahac od 0,5 do 1,5 * sekundy, gdzie sekundy podano opcja wait (-w). W artykule z 2001, w pewnej publikacji poswieconej rozwijaniu oprogramowania na popularnych platformach klienckich, podano kod wykonujacy taka analize na biezaco. Autor sugerowal blokowanie na poziomie adresu klasy C, co ma gwarantowac, ze programy pobierajace zostana zablokowane niezaleznie od zmiany adresow przedzielanych przez DHCP. Opcja --random-wait powstala z powodu tej wlasnie nierozwaznej porady, zalecajacej blokowanie wielu postronnych uzytkownikow osrodka z powodu dzialan jednego z nich. --no-proxy Wylacza uzywanie serwerow posredniczacych, nawet jesli zdefiniowano odpowiednia zmienna srodowiskowa *_proxy. -Q wielkosc --quota=wielkosc Okresla ograniczenie wielkosci pobieranych danych przy sciaganiu automatycznym. Limit podawany jest w bajtach (domyslnie), kilobajtach (z przyrostkiem k) lub megabajtach (z przyrostkiem m). Warto pamietac, ze ograniczenie to nigdy nie dotyczy pobierania pojedynczego pliku. Tak wiec, jesli podamy wget -Q10k https://example.com/ls-lR.gz, to zostanie sciagniety caly plik ls-lR.gz. Tak samo dzieje sie nawet wowczas, gdy w wierszu polecen zostanie wyszczegolnionych kilka URL-i. Ograniczenie wielkosci jest sprawdzane jedynie po zakonczeniu pobierania kazdego pliku, zatem nigdy nie spowoduje pobrania jedynie czesci pliku. Mozna zatem spokojnie wpisac wget -Q2m -i witryny -- pobranie zostanie przerwane po calkowitym ukonczeniu pobierania pliku, ktory wykorzystal ograniczenie wielkosci. Ustawienie limitu na 0 lub na inf znosi ograniczenie pobierania. --no-dns-cache Wylacza buforowanie translacji DNS. Wget zwykle zapamietuje przetlumaczone adresy IP z DNS, dzieki czemu nie musi odpytywac ponownie serwera DNS w sprawie tego samego (zwykle malego) zestawu hostow, z ktorych nastepuje pobieranie. Bufor istnieje wylacznie w pamieci; nowa kopia Wgeta ponownie odpyta serwery DNS. W niektorych przypadkach zostalo zgloszone, ze buforowanie nazw hostow nie jest pozadane nawet, gdy trwa to tylko tyle, ile dzialanie Wgeta. Po uzyciu tej opcji, Wget wysyla nowe zadanie translacji DNS (bardziej precyzyjnie: nowe wywolanie gethostbyname lub getaddrinfo) przy kazdym zestawianiu nowego polaczenia. Prosze zauwazyc, ze opcja ta nie wplywa na buforowanie, ktore moze byc wykonywane przez odpowiednia biblioteke lub w zewnetrznej warstwie buforowania, takiej jak NSCD. Jesli przeznaczenie tej opcji nie jest calkowicie jasne, prawdopodobnie nie ma potrzeby jej stosowania. --restrict-file-names=tryby Zmienia znaki, ktore maja byc cytowane w odnosnikach zewnetrznych podczas tworzenia lokalnych nazw plikow. Znaki, ktore sa ograniczone przez te opcje, sa cytowane - tzn. zastepowane przez %HH, gdzie HH jest liczba szesnastkowa odpowiadajaca ograniczonemu znakowi. Opcje mozna wykorzystac rowniez do wymuszenia okreslonej wielkosci liter. Domyslnie, Wget cytuje znaki, ktore nie sa prawidlowe lub bezpieczne jako czesc nazwy pliku w danym systemie operacyjnym, jak rowniez znaki kontrolne, ktore zwykle nie sa wyswietlane. Opcja jest przydatna do zmiany wartosci domyslnych, np. poniewaz plik zostal pobrany na partycje nienatywna, aby wylaczyc cytowanie znakow kontrolnych lub aby jeszcze bardziej ograniczyc zestaw znakow, do wartosci ASCII. Tryby sa zestawem wartosci tekstowych, oddzielonych przecinkiem. Akceptowanymi wartosciami sa: unix, windows, nocontrol, ascii, lowercase i uppercase. Wartosci unix i windows sa wzajemnie sprzeczne (jedna przesloni druga), podobnie jak lowercase i uppercase. Dwie ostatnie sa wartosciami specjalnymi, poniewaz nie zmieniaja one zestawu znakow do cytowania, lecz wymuszaja przeksztalcenie sciezek plikow lokalnych na, odpowiednio, male litery i duze litery. Jesli uzyje sie trybu unix, to Wget bedzie cytowal znak / oraz znaki kontrolne z przedzialow 0-31 i 128-159. Jest to domyslne zachowanie w systemach uniksowych. Przy podaniu trybu windows, Wget cytuje znaki \, |, /, :, ?, ", *, <, > oraz znaki kontrolne w przedzialach 0-31 i 128-159. Dodatkowo, w lokalnych nazwach plikow, w trybie windowsowym Wget oddziela nazwe komputera i port znakiem + zamiast :, oraz uzywa @ zamiast ? do oddzielenia czesci zapytania w nazwie pliku od reszty. Dlatego, URL ktory w trybie uniksowym zostalby zachowany jako www.xemacs.org:4300/search.pl?input=blah, w trybie windowsowym zostanie zapisany jako www.xemacs.org+4300/search.pl@input=blah. Jest to domyslny tryb w systemie Windows. Tryb nocontrol wylacza cytowanie znakow kontrolnych. Opcja ta ma sens, gdy pobierane sa URL-e zawierajace znaki UTF-8 w systemie, ktory moze zapisywac i wyswietlac nazwy plikow w UTF-8 (czesc mozliwych wartosci bajtow uzywanych w sekwencjach UTF-8 miesci sie w zakresie wartosci opisywanych przez Wgeta jako ,,kontrolne". Tryb ascii cytuje wszystkie bajty spoza zakresu znakow ASCII (czyli wieksze niz 127). Przydatne, gdy kodowanie nazw plikow nie pasuje do tego uzywanego lokalnie. -4 --inet4-only -6 --inet6-only Wymusza polaczenia z adresami IPv4 lub IPv6. Z opcja --inet4-only lub -4, Wget polaczy sie wylacznie z adresami IPv4, ignorujac rekordy AAAA w DNS i odmawiajac polaczenia z adresami IPv6 podanymi w URL-u. Analogicznie, opcja --inet6-only lub -6 spowoduje laczenie sie wylacznie z adresami IPv6 i ignorowanie rekordow A i adresow IPv4. Nie powinno sie zwykle uzywac zadnej z tych opcji. Domyslnie, Wget obslugujacy adresy IPv6 bedzie uzywal rodziny adresow okreslonych przez rekord DNS hosta. Jesli DNS odpowie zarowno adresem IPv4 jak i IPv6, to Wget sprobuje polaczyc sie z nimi po kolei, dopoki mu sie to nie uda (zob. tez opcja --prefer-family opisana ponizej). Opcje te moga posluzyc do celowego wymuszenia uzycia rodzin adresow IPv4 lub IPv6 w systemach o podwojnej rodzinie adresow, zwykle w celu pomocy w debugowaniu lub do obslugi nieprawidlowej konfiguracji sieci. W tym samym czasie mozna uzyc tylko jednej z opcji --inet6-only i --inet4-only. Zadna z nich nie jest dostepna we Wgecie skompilowanym bez obslugi IPv6. --prefer-family=none/IPv4/IPv6 Gdy do wyboru bedzie kilka adresow, laczy sie najpierw z adresami z podanej rodziny. Kolejnosc adresow zwrocona przez DNS domyslnie jest uzywana bez zmian. Zapobiega sie w ten sposob falszywym bledom i probom laczenia przy dostepnie do hostow, ktore obsluguja zarowno adresy IPv6 jak i IPv4 z sieci IPv4. Na przyklad www.kame.net tlumaczy sie na 2001:200:0:8002:203:47ff:fea5:3085 i 203.178.141.194. Jesli preferowana rodzina adresow jest "IPv4", to one sa uzywane jako pierwsze; jesli preferowana rodzina jest "IPv6", adresy IPv6 maja pierwszenstwo. Jesli podana wartoscia jest "none", to uzywana jest kolejnosc adresow zwracana przez DNS. W przeciwienstwie do opcji -4 i -6, ta opcja nie wyklucza dostepu do ktorejs rodziny adresow - zmienia jedynie kolejnosc wykorzystania adresow. Prosze rowniez zauwazyc, ze zmiana kolejnosci wykonywana za pomoca tej opcji jest stabilna - nie dotyka kolejnosci adresow w tej samej rodzinie. Oznacza to, ze wzgledna kolejnosc adresow IPv4 i adresow IPv6, we wszystkich przypadkach pozostaje bez zmian. --retry-connrefused Uznaje ,,odrzucenie polaczenia" za blad przejsciowy i probuje ponownie. Zwykle Wget poddaje sie w przypadku URL-i, przy ktorych nie moze sie polaczyc, poniewaz taki blad uznawany jest za znak calkowitego niedzialania serwera i ponowne proby zwykle nie przynioslyby rezultatu. Opcja jest przeznaczona do tworzenia kopii lustrzanych stron na niestabilnych serwerach, ktore maja tendencje do znikania na krotki czas z sieci. --user=uzytkownik --password=haslo Okresla uzytkownika uzytkownik i haslo haslo do pobierania plikow za pomoca FTP i HTTP. Mozna przeslonic te parametry za pomoca opcji --ftp-user i --ftp-password w przypadku polaczen FTP oraz --http-user i --http-password w przypadku polaczen HTTP. --ask-password Pyta o haslo po zestawieniu kazdego polaczenia. Nie mozna uzyc tej opcji z --password, poniewaz wzajemnie sie wykluczaja. --use-askpass=polecenie Prosi o nazwe uzytkownika i haslo za pomoca podanego polecenia. Jesli nie poda sie polecenia, to program korzysta ze zmiennej srodowiskowej WGET_ASKPASS. Jesli zmienna WGET_ASKPASS nie jest ustawiona, to uzywane jest polecenie ze zmiennej srodowiskowej SSH_ASKPASS. Mozna ustawic domyslne polecenie dla use-askpass w pliku .wgetrc. To ustawienie moze byc przesloniete z wiersza polecen. --no-iri Wylacza obsluge URI ze znakami narodowymi (IRI). Opcja --iri wlacza ja. Obsluga IRI jest domyslnie wlaczona. Mozna ustawic domyslna wartosc obslugi IRI za pomoca polecenia iri w .wgetrc, ktore moze byc przesloniete z wiersza polecen. --local-encoding=kodowanie Wymusza uzycie kodowania jako domyslnego kodowania systemowego. Wplywa to na sposob, w jaki Wget przeksztalca URL-e podane jako argumenty do kodowania UTF-8, w celu obslugi IRI. Wget uzywa funkcji nl_langinfo(), a nastepnie zmiennej srodowiskowej "CHARSET" w celu ustalenia kodowania. Jesli nie powiedzie sie to, uzywane jest ASCII. Mozna ustawic domyslne kodowanie lokalne za pomoca polecenia local_encoding w .wgetrc, ktore moze byc przesloniete z wiersza polecen. --remote-encoding=kodowanie Wymusza uzycie kodowania jako domyslnego kodowania serwera zdalnego. Wplywa to na sposob tlumaczenia URI znajdowanych w plikach, z kodowania zdalnego na UTF-8 podczas pobierania rekurencyjnego. Opcja jest przydatna tylko do obslugi IRI, w celu interpretacji znakow spoza ASCII. W przypadku HTTP, kodowanie zdalne mozna znalezc w naglowku HTTP Content-Type i w metaznaczniku HTML Content-Type http-equiv. Mozna ustawic domyslne kodowanie za pomoca polecenia remoteencoding w .wgetrc, ktore moze byc przesloniete z wiersza polecen. --unlink Wymusza wykonywanie unlink na plikach, zamiast przebijania plikow istniejacych. Opcja jest przydatna w przypadku pobierania do katalogu zawierajacego dowiazania zwykle (twarde). Opcje katalogow -nd --no-directories Nie tworzy hierarchii katalogow przy pobieraniu rekurencyjnym. Po wlaczeniu tej opcji wszystkie pliki beda zapisywane do biezacego katalogu bez przebijania (jesli nazwa pojawi sie wiecej niz raz, nazwy plikow otrzymaja rozszerzenie .n). -x --force-directories Przeciwienstwo -nd. Wymusza utworzenie hierarchii katalogow nawet jesli nie mialaby byc stworzona. Np. wget -x http://fly.srk.fer.hr/robots.txt zapisze sciagniety plik jako fly.srk.fer.hr/robots.txt. -nH --no-host-directories Wylacza tworzenie katalogow z nazwa hosta jako przedrostkiem. Domyslnie, -r http://fly.srk.fer.hr/ spowoduje utworzenie struktury katalogow zaczynajacej sie od fly.srk.fer.hr/, gdzie trafi cala reszta. Ta opcja wylacza takie zachowanie. --protocol-directories Uzywa nazwy protokolu jako czesci nazwy katalogu plikow lokalnych. Na przyklad, po uzyciu tej opcji wget -r http://host zostanie zapisane do katalogu http/host/... zamiast do host/.... --cut-dirs=liczba Ignoruje podana liczbe skladowych katalogu. Przydatne do precyzyjnego sterowania katalogami, w ktorych beda skladowane pliki z pobierania rekurencyjnego. Wezmy, na przyklad, katalog ftp://ftp.xemacs.org/pub/xemacs/. Jezeli pobierzemy go z -r, to lokalnie zostanie zachowany jako ftp.xemacs.org/pub/xemacs/. Mimo ze opcja -nH pozwala na usuniecie czesci ftp.xemacs.org/, nadal utkniemy z pub/xemacs. Tu wlasnie z pomoca przychodzi cut-dirs. Powoduje, ze Wget ,,nie widzi" zadanej liczby skladowych zdalnego katalogu. Oto kilka przykladow pokazujacych, jak dziala opcja cut-dirs. Brak opcji -> ftp.xemacs.org/pub/xemacs/ -nH -> pub/xemacs/ -nH --cut-dirs=1 -> xemacs/ -nH --cut-dirs=2 -> . --cut-dirs=1 -> ftp.xemacs.org/xemacs/ ... Jesli chcemy po prostu pozbyc sie struktury katalogow, to opcja ta jest podobna do kombinacji -nd i -P. Jednak cut-dirs, w przeciwienstwie do -nd, nie pozbywa sie podkatalogow na przyklad, przy -nH --cut-dirs=1, podkatalog beta/ bedzie, zgodnie z oczekiwaniami, umieszczony w xemacs/beta. -P przedrostek --directory-prefix=prefiks Ustawia przedrostek katalogow na prefiks. Przedrostek katalogow oznacza katalog, zostana zapisane wszystkie inne pliki i katalogi, tzn. wierzcholek drzewa pobierania. Domyslnym przedrostkiem jest ., katalog biezacy. Opcje HTTP --default-page=nazwa Uzywa nazwy jako domyslnej nazwy pliku, gdy nie jest ona znana (np. w przypadku URL-ow konczacych sie ukosnikiem), zamiast index.html. -E --adjust-extension Jesli pobierany jest plik typu application/xhtml+xml lub text/html a jego URL nie konczy sie wyrazeniem regularnym \.[Hh][Tt][Mm][Ll]?, to opcja ta spowoduje dodanie przyrostka .html do lokalnej nazwy pliku. Przydatne, na przyklad, gdy tworzymy kopie lustrzana witryny, ktora uzywa stron .asp, ale chcemy, by pozyskane strony dawaly sie przegladac za pomoca wlasnego serwera Apache. Innym dobrym zastosowaniem jest pobieranie wyjscia generowanego przez skrypty CGI. URL typu http://site.com/article.cgi?25 zostanie zachowany jako article.cgi?25.html. Prosze zauwazyc, ze pliki o zmienionych w ten sposob nazwach beda ponownie pobierane za kazdym razem gdy bedziemy odswiezac kopie lustrzana witryny. Dzieje sie tak, poniewaz Wget nie potrafi stwierdzic, ze lokalny plik X.html odpowiada zdalnemu URL-owi X (gdyz nie wie, ze ten URL tworzy wyjscie typu text/html lub application/xhtml+xml). Wget upewni sie tez (stan na wersje 1.12), ze pobierane pliki typu text/css koncza sie przyrostkiem .css. Zmieniono nazwe tej opcji z --html-extension, aby lepiej oddac to nowe zachowanie. Stara nazwa opcji jest wciaz akceptowana, ale jest przestarzala. Wedlug stanu na wersje 1.19.2, Wget upewni sie rowniez, ze pobrane pliki z "Content-Encoding" ustawionym na br, compress, deflate lub gzip, beda konczyly sie przyrostkiem (rozszerzeniem), odpowiednio, .br, .Z, .zlib lub .gz. W przyszlosci, opcja moze zostac poszerzona, aby objac rowniez przyrostki innych typow zawartosci, w tym takich, ktore nie sa przetwarzane przez Wget. --http-user=uzytkownik --http-password=haslo Okresla nazwe uzytkownika i haslo, ktore Wget przesle serwerowi HTTP. W zaleznosci od rodzaju protokolu wezwanie-odpowiedz, Wget koduje je stosujac albo uwierzytelnianie podstawowe (basic, niechronione), albo w oparciu o skrot (digest) lub tez korzystajac z metody Windowsa (NTLM). Inna metode podania nazwy i hasla uzytkownika jest wyszczegolnienie ich w samym URL-u. Obie te metody ujawniaja haslo kazdemu, kto zechce uruchomic ps. Zeby uchronic hasla przed podpatrzeniem, nalezy korzystac z --use-askpass albo przechowywac je w pliku .wgetrc lub .netrc i, za pomoca chmod, zapewnic tym plikom ochrone przed innymi uzytkownikami. Jezeli hasla sa naprawde wazne, w tych plikach tez nie nalezy trzymac ich na stale prosze usunac je z plikow zaraz po rozpoczeciu pobierania przez Wgeta. --no-http-keep-alive Wylacza funkcje ,,keep-alive" pobieran HTTP. Wget zwykle prosi serwer o utrzymywanie otwartego polaczenia, dzieki czemu, jesli pobiera sie wiecej niz jeden dokument z tego samego serwera, sa przesylane tym samym polaczeniem TCP. Oszczedza to czas i redukuje obciazenie serwera. Opcja jest przydatna, gdy polaczenia stale (keep-alive) nie dzialaja poprawnie, np. z powodu bledu serwera lub niemoznosci obslugi takich polaczen przez skrypty po stronie serwera. --no-cache Wylacza buforowanie po stronie serwera. W takim przypadku Wget wysyla zdalnemu serwerowi odpowiednie komendy (Cache-Control: no-cache i Pragma: no-cache), dzieki ktorym plik zostanie pobrany z uslugi zdalnej, a nie zwrocona zostanie wersja buforowana. Jest to szczegolnie przydatne do pobierania i wymiatania przeterminowanych dokumentow z serwerow proxy. Domyslnie, buforowanie jest dozwolone. --no-cookies Wylacza uzywanie ciasteczek (cookies). Ciasteczka sa mechanizmem do przechowywania stanu po stronie serwera. Serwer przesyla klientowi ciasteczko stosujac naglowek Set-Cookie, a klient przy pozniejszych zadaniach odpowiada tym samym ciasteczkiem. Poniewaz ciasteczka umozliwiaja wlascicielom serwera prowadzenie rejestrow gosci i wymiane sie tymi informacjami z innymi osrodkami, niektorzy uwazaja je za pogwalcenie prywatnosci. Domyslnie cookies sa uzywane, jednak ich zapisywanie nie jest domyslnie wlaczone. --load-cookies plik Przed pierwszym pobraniem HTTP wczytuje ciasteczka z pliku. Plik jest plikiem tekstowym w formacie, jaki pierwotnie zastosowano dla pliku cookies.txt przegladarki Netscape. Na ogol korzysta sie z tej opcji przy tworzeniu kopii lustrzanych tych osrodkow, ktore do skorzystania z czesci lub calosci zasobow wymagaja zalogowania sie. Proces logowania sie zwykle polega na tym, ze po otrzymaniu od nas informacji uwierzytelniajacej i jej zweryfikowaniu serwer WWW wysyla ciasteczko HTTP. Nastepnie, gdy przegladarka siega do zasobow, odsyla serwerowi otrzymane ciasteczko, potwierdzajac w ten sposob nasza tozsamosc. Utworzenie kopii tego rodzaju witryny wymaga wysylania przez Wget takich samych ciasteczek, jakie podczas komunikowania sie z tym osrodkiem przesyla nasza przegladarka. Osiaga sie to za pomoca load-cookies -- wystarczy wskazac programowi lokalizacje pliku cookies.txt, a on wysle te same ciasteczka, ktore w tej samej sytuacji wyslalaby przegladarka. Poszczegolne przegladarki przechowuja tekstowe pliki ciasteczek w roznych miejscach: "Netscape 4.x." Ciasteczka sa w ~/.netscape/cookies.txt. "Mozilla and Netscape 6.x." Plik ciasteczek Mozilli nazywa sie rowniez cookies.txt, jest polozony gdzies w ~/.mozilla, w katalogu wlasciwym dla profilu uzytkownika. Pelna sciezka zazwyczaj konczy sie czyms w rodzaju ~/.mozilla/default/cos-dziwnego/cookies.txt. "Internet Explorer." Ciasteczko, jakiego moglby uzyc Wget, mozna utworzyc korzystajac z menu ,,Plik" i opcji ,,Importuj i Eksportuj", ,,Eksportuj pliki cookie". Zostalo to przetestowane z Internet Explorerem 5 - nie ma gwarancji, ze bedzie dzialac z wczesniejszymi wersjami. "Other browsers." Jezeli do tworzenia ciasteczek korzysta sie z innej przegladarki, load-cookies bedzie dzialac tylko wtedy, gdy uda sie je zlokalizowac lub utworzyc plik ciasteczek w formacie Netscape, jakiego oczekuje Wget. Jesli nie mozna skorzystac z load-cookies, jest jeszcze inna mozliwosc. Jesli uzywana przegladarka udostepnia ,,menedzera plikow cookie", mozna z niego skorzystac, zeby podgladnac ciasteczka, jakie zostaly wykorzystane podczas uzyskiwania dostepu do witryny, ktorej kopie chce sie utworzyc. Prosze zapisac nazwe i wartosc ciasteczka, a nastepnie recznie nakazac Wgetowi wyslanie ciasteczka o zadanej postaci, obchodzac rownoczesnie ,,oficjalny" kod odpowiedzialny za obsluge ciasteczek: wget --no-cookies --header "Cookie: I=I" --save-cookies plik Zachowuje ciasteczka do pliku przed wyjsciem. Nie zostana zapisane ciasteczka przeterminowane lub nieposiadajace daty waznosci (zwane ,,ciasteczkami sesyjnymi); por. --keep-session-cookies. --keep-session-cookies Po podaniu, powoduje ze --save-cookies zachowuje rowniez ciasteczka sesyjne, ktore zwykle nie sa zapisywane, poniewaz sa przeznaczone do zachowania w pamieci i usuniecia z niej po zamknieciu przegladarki. Zachowywanie ich moze byc przydatne na stronach, ktore wymagaja logowania lub odwiedzenia strony glownej przed uzyskaniem dostepu do innych stron. Po skorzystaniu z tej opcji, rozne przebiegi Wgeta moga byc traktowane jako jedna sesja przegladarki, w zaleznosci od strony internetowej. Poniewaz format pliku ciasteczek nie przechowuje zwykle ciasteczek sesyjnych, Wget oznacza je znacznikiem czasowym przedawnienia rownym 0. Opcja --load-cookies rozpoznaje je jako ciasteczka sesyjne, lecz moze to zmylic inne przegladarki. Prosze zwrocic uwage, ze tak zaladowane ciasteczka beda traktowane jak inne ciasteczka sesji, co oznacza, ze trzeba uzyc opcji --keep-session-cookies ponownie, aby zachowac je za pomoca opcji --save-cookies. --ignore-length Niestety, niektore serwery HTTP (dokladniej mowiac, programy CGI) wysylaja bledne naglowki Content-Length, co powoduje, ze Wget glupieje, sadzac, ze nie zostala pobrana calosc dokumentu. Syndrom ten mozna uchwycic, gdy Wget probuje w kolko pobierac ten sam dokument, za kazdym razem twierdzac, ze (inaczej niz zwykle) polaczenie zostalo zamkniete na dokladnie tym samym bajcie. Wywolany z ta opcja, Wget bedzie ignorowal naglowek Content-Length, tak jakby nie istnial. --header=wiersz-naglowka Wysyla wiersz-naglowka razem z pozostala czescia naglowka w kazdym zadaniu HTTP. Podany naglowek jest wysylany bez zmian, tak wiec musi zawierac nazwe i wartosc (po dwukropku) i nie moze zawierac znaku nowego wiersza. Mozliwe jest okreslenie wiecej niz jednego dodatkowego naglowka przez kilkakrotne podanie opcji --header. wget --header='Accept-Charset: iso-8859-2' \ --header='Accept-Language: hr' \ http://fly.srk.fer.hr/ Podanie pustego lancucha jako naglowka kasuje wszystkie uprzednio zdefiniowane przez uzytkownika naglowki. Od Wgeta 1.10, mozna uzyc tej opcji do przesloniecia naglowkow, ktore bylyby wygenerowane automatycznie. Oto przyklad nakazania Wgetowi polaczenie z komputerem lokalnym, jednak podajac foo.bar w naglowku Host: wget --header="Host: foo.bar" http://localhost/ W wersjach ponizej 1.10, takie uzycie opcji --header powodowalo wysylanie zduplikowanych naglowkow. --compression=typ Wybiera uzywany tryb kompresji. Poprawne wartosci to: auto, gzip i none. Gdy poda sie auto lub gzip, Wget poprosi serwer o skompresowanie pliku za pomoca formatu kompresji gzip. Jesli serwer skompresuje plik i odpowie odpowiednio ustawionym polem naglowka Content-Encoding, plik zostanie automatycznie rozpakowany. Gdy poda sie none, wget nie poprosi serwera o kompresowanie pliku i nie rozpakuje tego, co zwroci serwer. Jest to zachowanie domyslne. Obsluga kompresji jest aktualnie w fazie eksperymentalnej. Jesli jest wlaczona, bledy prosze zglaszac na adres bug-wget@gnu.org. --max-redirect=liczba Okresla maksymalna liczbe przekierowan w celu dotarcia do zasobu. Domyslnie jest to 20, czyli znaczniej wiecej niz z reguly potrzeba. Opcja moze sie przydac, jesli zajdzie potrzeba pozwolenia na wiecej (lub mniej) przekierowan. --proxy-user=uzytkownik --proxy-passwd=haslo Okreslaja nazwe uzytkownika i haslo, ktore zostana uzyte do uwierzytelnianiana serwerze posredniczacym. Wget koduje je stosujac podstawowy (basic) schemat uwierzytelniania. Odnosza sie do tego podobne zagadnienia zwiazane z bezpieczenstwem, jak w przypadku opcji --http-password. --referer=url Zamieszcza naglowek ,,Referer: url" w zadaniu HTTP. Przydatne do pobierania dokumentow z takim przetwarzaniem po stronie serwera, ktore zaklada, ze sa one zawsze pobierane przez interaktywne przegladarki internetowe i uznawane za poprawne tylko wtedy, gdy Referer jest ustawione na jedna ze stron, ktore na nie wskazuja. --save-headers Zapisuje naglowki wysylane przez serwer HTTP do pliku, przed wlasciwa zawartoscia, z pustym wierszem jako separatorem. -U nazwa-agenta --user-agent=nazwa-agenta Serwerowi HTTP przedstawia sie jako agent o podanej nazwie. Protokol HTTP pozwala klientom na podanie, za pomoca pola User-Agent naglowka swojej tozsamosci. Umozliwia to rozroznianie oprogramowania WWW, zwykle do celow statystycznych lub sledzenia naruszen protokolu. Wget normalnie przedstawia sie jako Wget/wersja, gdzie wersja jest aktualnym numerem wersji programu. Znane sa jednak pewne witryny narzucajace polityke przykrawania wynikow stosownie do informacji dostarczonej im w polu User-Agent. Mimo iz koncepcyjnie nie jest to taki zly pomysl, zaczal byc naduzywany przez serwery odmawiajace informacji klientom innym niz (kiedys) Netscape lub, czesciej, Internet Explorer. Ta opcja umozliwia zmiane linii User-Agent wysylanej przez Wget. Nie zachecamy do uzywania tej opcji, chyba ze z pelna swiadomoscia. Podanie pustego lancucha za pomoca --user-agent="" powoduje, ze Wget nie bedzie wysylal naglowka User-Agent w zadaniach HTTP. --post-data=lancuch --post-file=plik Uzywa metody POST do wszystkich zadan HTTP i wysyla podane dane w ciele zadania. --post-data wysyla lancuch jako dane, podczas gdy --post-file wysyla zawartosc pliku. W pozostalych aspektach ich dzialanie jest identyczne. W szczegolnosci obie opcje oczekuja zawartosci w postaci klucz=wartosc&klucz2=wartosc2, kodowaniem znakow specjalnych w postaci procentowej; jedyna roznica jest, ze jedna oczekuje zawartosci jako parametru wiersza polecenia, a druga akceptuje swa tresc z pliku. W szczegolnosci, --post-file nie przysyla plikow w postaci zalacznikow, musza byc to dane w postaci klucz=wartosc (z wlasciwym kodowaniem ,,procentowym"), jak zaznaczono wyzej. Wget nie obsluguje obecnie multipart/form-data przy przesylaniu danych POST, a jedynie application/x-www-form-urlencoded. Prosze uzyc jedynie jednej z opcji --post-data i --post-file. Prosze zauwazyc, ze wget nie wymaga aby zawartosc byla w postaci "klucz1=wartosc1&klucz2=wartosc2" ani nie sprawdza tego. Wget przesyla takie dane, jakie mu dostarczono. Wiekszosc serwerow oczekuje jednak, aby dane POST wystepowaly w powyzszej postaci przy przetwarzaniu formularzy HTML. Przy wysylaniu zadania POST za pomoca opcji --post-file, Wget traktuje plik jako plik binarny i wysle kazdy znak w zadaniu POST bez wycinania koncowych znakow nowego wiersza lub wysuwu strony. W zadaniu POST wyslane bez zmian beda rowniez wszelkie inne znaki kontrolne znajdujace sie w tekscie. Prosze zwrocic uwage, ze Wget musi znac rozmiar danych POST z gory. W zwiazku z tym, argumentem do opcji --post-file musi byc zwykly plik; przekazanie potoku FIFO lub czegos takiego jak /dev/stdin nie zadziala. Nie jest do konca jasne, jak obejsc to ograniczenie wpisane w protokol HTTP/1.0. Choc HTTP/1.1 wprowadza transfer fragmentaryczny, ktory nie wymaga wiedzy o dlugosci zadania z gory, to klient nie moze go uzywac, dopoki nie wie, ze komunikuje sie z serwerem HTTP/1.1. Nie moze tego wiedziec, dopoki nie otrzyma odpowiedzi, ktora wymaga pelnego zadania... Uwaga: Wedlug stanu na wersje 1.15 przy przekierowaniu Wgeta po sfinalizowaniu zadania POST, zachowanie programu bedzie zalezalo od kodu zwroconego przez serwer. Jesli bedzie to 301 Moved Permanently, 302 Moved Temporarily lub 307 Temporary Redirect, Wget, zgodnie z RFC2616 bedzie kontynuowal wysylanie zadania POST. Jesli serwer chce zmienic metode zadan klienta przy przekierowaniu powinien wyslac kod 303 See Other. Przyklad pokazuje, jak zalogowac sie do serwera uzywajacego POST, a nastepnie przejsc do pobierania zadanych stron, dostepnych prawdopodobnie tylko dla uzytkownikow uwierzytelnionych: # Logowanie do serwera. Mozna to zrobic tylko raz. wget --save-cookies cookies.txt \ --post-data 'user=foo&password=bar' \ http://example.com/auth.php # Teraz przechwytujemy strone lub strony o ktore nam chodzi. wget --load-cookies cookies.txt \ -p http://example.com/interesting/article.php Jesli serwer uzywa ciasteczek sesji do sledzenia uwierzytelnienia uzytkownika, to powyzszy przyklad nie zadziala, poniewaz --save-cookies nie zachowa ich (podobnie jak przegladarki), a plik cookies.txt bedzie pusty. W takim przypadku, oprocz --save-cookies nalezy uzyc rowniez --keep-session-cookies. --method=metoda-HTTP Do skryptow ,,restowych" (RESTfull, gdzie REST oznacza Representational State Transfer) Wget pozwala na wyslanie innych metod HTTP bez koniecznosci jawnego ustawiania ich przy pomocy opcji --header=Header-Line. Wget uzyje takiego lancucha, jaki jest mu podany po --method jako metoda HTTP do serwera. --body-data=lancuch-danych --body-file=plik-danych Opcja musi byc ustawiona gdy konieczne jest wyslanie dodatkowych danych do serwera przy uzyciu metody podanej w --method. --body-data wysyla lancuch-danych jako dane, a --body-file wysyla zawartosc pliku-danych. Poza tym obie opcje dzialaja tak samo. Obecnie --body-file nie sluzy do transmisji plikow jako calosci. Wget nie obsluguje w tej chwili "multipart/form-data" do transmisji danych, a jedynie "application/x-www-form-urlencoded". W przyszlosci moze sie to zmienic tak, aby wget wysylal --body-file jako caly plik zamiast wysylania jego zawartosci na serwer. Prosze zauwazyc, ze Wget musi znac wpierw zawartosc danych BODY, dlatego argument do opcji --body-file powinien byc zwyklym plikiem. Wiecej szczegolow znajduje sie w opisie opcji --post-file. Powinno sie podawac albo opcje --body-data albo --body-file. Jesli Wget zostanie przekierowany po sfinalizowaniu zadania, wznowi biezaca metode i bedzie wysylal zadanie GET az do zakonczenia przekierowania. Jest tak w przypadku wszystkich kodow z wyjatkiem 307 Temporary Redirect, ktory sluzy do bezposredniego wskazania, ze metoda nie powinna sie zmienic. Inny wyjatek ma miejsce gdy metoda jest ustawiona na "POST", poniewaz wowczas przestrzegane sa zasady okreslone przez --post-data. --content-disposition Opcja wlacza eksperymentalna (niepelna) obsluge naglowka Content-Disposition. Moze to obecnie spowodowac dodatkowe kluczenie serwera zwiazane z zadaniami HEAD, znane jest rowniez kilka bledow, co powoduje, ze opcja ta domyslnie nie jest wlaczona. Opcja jest przydatna niektorym programom CGI pobierajacym pliki, ktore uzywaja naglowkow Content-Disposition do opisania nazwy pobieranego pliku. Przy laczeniu z --metalink-over-http i --trust-server-names, plik Content-Type: application/metalink4+xml otrzymuje nazwe wedlug pola nazwy pliku "Content-Disposition", jesli takie jest dostepne. --content-on-error Jesli ta opcja jest wlaczona, to wget nie bedzie pomijal zawartosci gdy serwer odpowie kodem statusu http wskazujacym na blad. --trust-server-names Jesli opcja ta jest ustawiona, nazwa lokalnego pliku powstanie na podstawie URL-a przekierowania. Domyslnie, bazowalaby na pierwotnym URL-u. Opcja przydatna przy pobieraniu rekurencyjnym, poniewaz na wielu stronach URL-e przekierowania odpowiadaja strukturze plikow, natomiast URL-e odnosnikow nie. --auth-no-challenge Jesli opcja jest podana, Wget bedzie wysylal proste (Basic) informacje uwierzytelniajace HTTP (nazwa uzytkownika i haslo w jawnym tekscie) przy wszystkich zadaniach, tak jak domyslnie robil to Wget w wersjach 1.10.2 i wczesniejszych. Uzywanie tej opcji nie jest zalecane, jako ze zostala przeznaczona jedynie do obslugiwania kilku zapomnianych serwerow, ktore nigdy nie wysylaja pytan o uwierzytelnienie HTTP, lecz akceptuja niezadane informacje uwierzytelniajace, oprocz uwierzytelnienia opartego na formularzu. --retry-on-host-error Uwaza bledy stacji, takie jak ,,Temporary failure in name resolution" (tymczasowy blad rozwiazywania nazw) za bledy niekrytyczne, przejsciowe. --retry-on-http-error=kod[,kod,...] Uwaza podane kody odpowiedzi HTTP za bledy niekrytyczne, tymczasowe. Jako argument nalezy podac liste trzycyfrowych kodow odpowiedzi HTTP rozdzielonych przecinkiem. Przydatne do obejscia okreslonych sytuacji, gdy konieczne jest ponowienie proby, lecz serwer odpowiada kodem bledu, przy ktorym Wget zwykle nie probowalby ponownie. Moga byc to bledy takie jak 503 (Service Unavailable -- usluga niedostepna) lub 429 (Too Many Requests -- zbyt wiele zadan). Ponowne proby wlaczone ta opcja sa przedmiotem zwyklych regul czasowych i limitow prob programu Wget. Korzystanie z tej opcji ma na celu jedynie obsluge specjalnych przypadkow i nie jest zwykle zalecane, jako ze moze wymuszac ponowne proby w sytuacjach, gdy serwer faktycznie stara sie zmniejszyc swoje obciazenie. Prosze uzywac rozsadnie i tylko gdy jest sie pewnym tego, co sie robi. Opcje (SSL/TLS) HTTPS W celu obslugi szyfrowanych pobieran HTTP (HTTPS), Wget musi byc skompilowany z dodatkowa biblioteka SSL. Obecnie domyslna jest GnuTLS. Dodatkowo, Wget obsluguje rowniez HSTS (HTTP Strict Transport Security). Jesli Wget jest skompilowany bez obslugi SSL, zadna z tych opcji nie bedzie dostepna. --secure-protocol=protokol Wybiera protokol zabezpieczen. Poprawnymi wartosciami sa auto, SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2, TLSv1_3 i PFS. Jesli uzywane jest auto, automatycznego wyboru protokolu dokonuje biblioteka SSL, co jest osiagane przez wyslanie pozdrowienia TLSv1. Tak jest domyslnie. Podanie SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2 lub TLSv1_3 wymusza uzycie odpowiedniego protokolu. Jest to przydatne przy komunikacji ze starymi i blednymi implementacjami SSL serwera, ktore nie pozwalaja na latwy wybor poprawnej wersji protokolu przez biblioteke SSL. Na szczescie, takie serwery sa rzadkoscia. Okreslenie PFS wymusza uzywanie zestawow kluczy Perfect Forward Security (PFS). W skrocie, PFS zwieksza bezpieczenstwo tworzac jednorazowy klucz do kazdego polaczenia. Uzywa tez nieco wiecej mocy CPU zarowno na kliencie jak i na serwerze. Uzywamy kluczy, ktore sa uznawane za bezpieczne (tzn. np nie jest to MD4) oraz protokolu TLS. Tryb ten wylacza rowniez wszelkie metody wymiany kluczy inne niz PFS, takie jak RSA. --https-only W trybie rekurencyjnym podaza wylacznie za odnosnikami HTTPS. --ciphers Ustawia lancuch listy szyfrow. Zwykle lancuch ten ustawia zbiory szyfrow i inne opcje SSL/TLS, ktorych chcialby uzyc uzytkownik, wedlug ustalonej kolejnosci preferencji (GnuTLS nazywa to ,,lancuchem priorytetow"). Lancuch ten zostanie przekazany bez zadnych modyfikacji silnikowi SSL/TLS (OpenSSL lub GnuTLS), zatem to od niego zaleza jego format i skladnia. Wget nie przetwarza ani nie zmienia go w zaden sposob. Wiecej informacji w dokumentacji OpenSSL lub GnuTLS. --no-check-certificate Nie sprawdza certyfikatu serwera pod katem dostepnego osrodka certyfikacji. Nie wymaga rowniez tego, aby nazwa hosta URL-a pasowala do nazwy ogolnej w certyfikacie. Od wersji 1.10, Wget domyslnie weryfikuje certyfikat serwera w odniesieniu do znanych osrodkow certyfikacji, przerywajac nawiazanie polaczenia SSL (handshaking) i pobieranie pliku, jesli weryfikacja sie nie powiedzie. Choc zwieksza sie w ten sposob bezpieczenstwo pobieran, zrywa to jednak kompatybilnosc z niektorymi stronami, ktore dzialaly z poprzednimi wersjami Wgeta, szczegolnie korzystajacymi z podpisanych przez siebie, wygaslych lub niepoprawnych z innego powodu certyfikatow. Opcja ta wymusza ,,niebezpieczny" tryb dzialania, ktory zmienia bledy weryfikacji certyfikatow w ostrzezenia i pozwala kontynuowac. Jesli wystapia bledy ,,weryfikacji certyfikatu" lub blad o tresci ,,nazwa w certyfikacie nie pasuje do zadanej nazwy hosta", mozna uzyc tej opcji aby ominac weryfikacje i kontynuowac pobieranie. Prosze uzywac tej opcji tylko wtedy, gdy jest sie przekonanym o wiarygodnosci strony lub gdy kompletnie nie dba sie o poprawnosc jej certyfikatu. Przy przesylaniu poufnych lub waznych danych, niesprawdzanie certyfikatu jest zwykle bardzo zlym pomyslem. W przypadku certyfikatow wewnetrznych/podpisanych przez siebie, powinno sie pobrac certyfikat i weryfikowac wobec niego, zamiast wymuszac tryb niebezpieczny. Jesli jest sie naprawde przekonanym, ze weryfikacja certyfikatow jest nieskazana, mozna podac --check-certificate=quiet, aby nakazac programowi wget nie wypisywac zadnych ostrzezen o nieprawidlowych certyfikatach, ale jest to zwykle niewlasciwe. W przypadku certyfikatow podpisanych przez siebie lub wewnetrznych certyfikatow, nalezy pobrac certyfikat i dokonac weryfikacji wzgledem niego, zamiast wymuszac ten niebezpieczny tryb. Jesli naprawde jest sie pewnym pominiecia wszelkiej weryfikacji certyfikatow, mozna uzyc opcji --check-certificate=quiet aby nakazac programowi wget nie wypisywac ostrzezen o nieprawidlowych certyfikatach, lecz zwykle jest to nieprawidlowe postepowanie. --certificate=plik Uzywa certyfikatu klienta z pliku. Jest to konieczne w przypadku serwerow wymagajacych certyfikatow od klientow, ktorzy sie z nimi lacza. Zwykle taki certyfikat nie jest wymagany, a ten przelacznik jest opcjonalny. --certificate-type=typ Okresla typ certyfikatu klienta. Poprawnymi wartosciami sa PEM (zakladany domyslnie) i DER, znany rowniez jako ASN1. --private-key=plik Odczytuje klucz prywatny z pliku. Pozwala to na dostarczenie klucza prywatnego w oddzielnym od certyfikatu pliku. --private-key-type=typ Okresla typ klucza prywatnego. Akceptowanymi wartosciami sa PEM (domyslnie) i DER. --ca-certificate=plik Uzywa pliku jako pliku z zestawem osrodkow certyfikacji (,,CA") do weryfikacji posrednikow. Certyfikaty musza byc w formacie PEM. Bez tej opcji, Wget szuka certyfikatow CA w lokalizacji systemowej, wybranej podczas instalacji OpenSSL. --ca-directory=katalog Okresla katalog zawierajacy certyfikaty CA w formacie PEM. Kazdy plik zawiera certyfikat CA, a nazwa pliku jest oparta o wartosci skrotu wyliczonego na podstawie certyfikatu. Osiaga sie to przetwarzajac katalog certyfikatow narzedziem rehash pochodzacego z OpenSSL. Uzywanie --ca-directory jest efektywniejsze od --ca-certificate w przypadku, gdy zainstalowanych jest wiele certyfikatow, poniewaz pozwala Wgetowi pobierac certyfikaty na zadanie. Bez tej opcji, Wget szuka certyfikatow CA w lokalizacji systemowej, wybranej podczas instalacji OpenSSL. --crl-file=plik Okresla plik CRL. Jest to wymagane w przypadku certyfikatow, ktore zostaly uniewaznione przez osrodek certyfikujacy (CA). --pinnedpubkey=plik/skroty Nakazuje programowi wget korzystanie z podanego pliku klucza publicznego (lub skrotow), do weryfikacji partnera. Mozna podac sciezke do pliku zawierajacego pojedynczy klucz publiczny w formacie PEM lub DER, albo dowolnej liczby skrotow sha256 zakodowanych jako base64, poprzedzonych lancuchem ,,sha256//" oraz rozdzielonych srednikiem ,,;". Przy negocjacji polaczenia TLS lub SSL, serwer wysyla certyfikat poswiadczajacy jego tozsamosc. Z tego certyfikatu wyodrebniany jest klucz publiczny i jesli nie jest on tozsamy z kluczem (kluczami) publicznymi podanymi w tej opcji, wget przerwie polaczenie przed wyslaniem lub otrzymaniem jakichkolwiek danych. --random-file=plik [tylko OpenSSL i LibreSSL] Uzywa pliku jako zrodla losowych danych sluzacych za ziarno do generatora liczb pseudolosowych, w systemach pozbawionych /dev/urandom. W takich systemach biblioteka SSL wymaga zewnetrznego zrodla losowosci do rozpoczecia pracy. Moze byc EGD (por. --egd-file ponizej) lub odczyt z zewnetrznego zrodla podanego przez uzytkownika. Jesli nie poda sie tej opcji, Wget poszuka losowych danych w $RANDFILE lub, jesli zmienna nie jest ustawiona, w $HOME/.rnd. Pojawienie sie bledu ,,Could not seed OpenSSL PRNG; disabling SSL." oznacza, ze nalezy zapewnic losowe dane korzystajac z jednej z powyzszych metod. --egd-file=plik [tylko OpenSSL] Uzywa pliku jako gniazda EGD. EGD to skrot od Entropy Gathering Daemon (demon pozyskujacy entropie), programu dzialajacemu w przestrzeni uzytkownika, ktory zbiera dane z roznych nieprzewidywalnych zrodel w systemie i udostepnia je innym programom, ktore moga ich potrzebowac. Oprogramowanie szyfrujace, takie jak biblioteka SSL wymaga zrodel niepowtarzajacej sie losowosci, do wykorzystania jako ziarno generatora liczb losowych, uzywanego do tworzenia kluczy silnych kryptograficznie. OpenSSL pozwala uzytkownikowi podac swoje zrodlo entropii za pomoca zmiennej srodowiskowej RAND_FILE. Jesli pozostanie ona nieustawiona lub podany plik nie tworzy wystarczajacej losowosci, OpenSSL odczyta dane losowe z gniazda EGD podanego za pomoca opisywanej opcji. Jesli nie poda sie tej opcji (ani nie uzyje sie rownowaznego polecenia uruchomieniowego), EGD nigdy nie zostanie uzyte. Mechanizm ten nie jest potrzebny w nowoczesnych systemach uniksowych, obslugujacych /dev/urandom. --no-hsts Wget obsluguje domyslnie HSTS (HTTP Strict Transport Security, RFC 6797). Aby Wget dzialal jako niezgodny z HSTS, nalezy uzyc --no-hsts. W rezultacie Wget zignoruje wszelkie naglowki "Strict-Transport-Security" i nie zastosuje zadnych istniejacych zasad HSTS. --hsts-file=plik Domyslnie, Wget przechowuje swoja baze danych HSTS w pliku ~/.wget-hsts. Opcja --hsts-file mozna przeslonic to ustawienie. Wget uzyje podanego pliku jako bazy danych HSTS. Plik musi byc sformatowany jako prawidlowa baza danych HSTS uzywana przez Wget. Jesli Wget nie bedzie mogl przetworzyc podanego pliku, zachowanie programu jest nieokreslone. Baza danych HSTS programu Wget jest zwyklym plikiem tekstowym. Kazdy wiersz zawiera wpis HSTS (tj. strone ktora wydala naglowek "Strict-Transport-Security" i dlatego okreslila konkretne zasady HSTS, ktore maja byc zastosowane). Wiersze zaczynajace sie krzyzykiem ("#") sa ignorowane przez Wget. Prosze zauwazyc, ze pomimo iz plik ten jest czytelny dla czlowieka, reczna edycja bazy danych HSTS zwykle nie jest dobrym pomyslem. Wiersz wpisu HSTS zawiera wiele pol, rozdzielonych przez co najmniej jeden bialy znak: " SP [] SP SP SP " Pola nazwa-stacji i port okreslaja nazwe stacji (hosta) i port, do ktorego stosuje sie dana zasada HSTS. Pole port moze byc rowne zero i zwykle tak wlasnie bedzie. Oznacza to, ze numer portu nie jest brany pod uwage, przy decydowaniu, czy zadana zasada HSTS powinna byc stosowana przy danym zadaniu (sprawdzana bedzie tylko nazwa stacji). Gdy port jest rozny od zera, sprawdzana bedzie nazwa stacji i port, a zasada HSTS zostanie zastosowana tylko wtedy, gdy obie te wartosci beda pasowaly. Funkcja ta zostala dolaczona tylko do celow testowania/rozwoju. Zestaw testow programu Wget (w testenv/) tworzy baze danych HSTS z podanymi portami, aby upewnic sie, ze Wget dziala prawidlowo. Stosowanie zasad HSTS do portow innych niz domyslne jest odradzane w RFC 6797 (zob. Appendix B ,,Differences between HSTS Policy and Same-Origin Policy"). Funkcjonalnosc ta nie powinna byc zatem uzywana w srodowiskach innych niz testowe, a port powinien zwykle wynosic zero. Ostatnie trzy pola sa latwe do interpretacji. Pole obejmuj-poddomeny moze wynosic 1 lub 0 i sygnalizuje, czy poddomeny domeny docelowej maja byc rowniez czescia danych zasad HSTS. Pola utworzono i wygasa-po zawieraja znacznik czasu utworzenia danego wpisu (rozpoznania po raz pierwszy przez Wget) i zdefiniowana przez HSTS wartosc 'max-age', ktora okresla jak dlugo dane zasady HSTS maja pozostac aktywne, mierzone w sekundach od znacznika czasowego w polu utworzono. Po uplynieciu tego czasu, zasada HSTS nie bedzie juz prawidlowa i zostanie ostatecznie usunieta z bazy danych. Jesli poda sie swoja baze danych HSTS w opcji --hsts-file, prosze miec na uwadze, ze Wget moze zmodyfikowac podany plik, jesli miedzy zasadami HSTS zazadanymi przez zdalne serwery, a tymi zapisanymi w pliku, zajda jakies zmiany. Gdy Wget wychodzi, aktualizuje baze danych HSTS przepisujac plik bazy danych HSTS, uzywajac nowych wpisow. Jesli podany plik nie istnieje, Wget go utworzony. Plik ten bedzie zawieral nowe wpisy HSTS. Jesli nie zostana utworzone wpisy HSTS (zaden z serwerow nie wyslal naglowkow "Strict-Transport-Security") plik nie zostanie utworzony, nawet jako pusty plik. Zachowanie to ma miejsce rowniez wobec domyslnego pliku bazy danych (~/.wget-hsts): nie zostanie on utworzony, dopoki jakis serwer nie wymusi zasady HSTS. Program stara sie nie nadpisac zmian dokonanych w tym samym czasie przez inne procesy Wget, wobec bazy danych HSTS. Przed wpisaniem zaktualizowanych wpisow HSTS do pliku, Wget odczyta go ponownie i scali zmiany. Uzywanie zmienionej bazy danych HSTS i/lub modyfikacja istniejacej jest odradzane. Wiecej informacji o potencjalnych zagrozeniach zwiazanych z bezpieczenstwem, ktore moga z tego wyniknac opisano w rozdziale 14 ,,Security Considerations" w RFC 6797, a szczegolnie w rozdziale 14.9 ,,Creative Manipulation of HSTS Policy Store". --warc-file=plik Uzywa pliku jako celu pliku WARC. --warc-header=lancuch Uzywa lancucha jako rekordu warcinfo. --warc-max-size=rozmiar Ustawia maksymalny rozmiar plikow WARC na rozmiar. --warc-cdx Zapisuje pliku indeksu CDX. --warc-dedup=pliku Nie przechowuje rekordow wyszczegolnionych w danym pliku CDX. --no-warc-compression Nie kompresuje plikow WARC za pomoca GZIP. --no-warc-digests Nie oblicza sum SHA1. --no-warc-keep-log Nie przechowuje pliku dziennika w rekordzie WARC. --warc-tempdir=katalog Okresla polozenie plikow tymczasowych tworzonych przy zapisie WARC. Opcje FTP --ftp-user=uzytkownik --ftp-password=haslo Okresla nazwe uzytkownika i haslo serwera FTP. Bez tej opcji (i rownowaznej opcji uruchomieniowej) uzywane jest domyslne haslo -wget@, uzywane zwykle do anonimowych FTP. Inna metode podania nazwy i hasla uzytkownika jest wyszczegolnienie ich w samym URL-u. Obie te metody ujawniaja haslo kazdemu, kto zechce uruchomic ps. Zeby uchronic hasla przed podpatrzeniem, nalezy przechowywac je w pliku .wgetrc lub .netrc i, za pomoca chmod, zapewnic tym plikom ochrone przed innymi uzytkownikami. Jezeli hasla sa naprawde wazne, w tych plikach tez nie nalezy trzymac ich na stale prosze usunac je z plikow zaraz po rozpoczeciu pobierania przez Wgeta. --no-remove-listing Nie usuwa tymczasowych plikow .listing generowanych przez odczyty FTP. Normalnie, pliki te zawieraja nieprzetworzone listingi katalogow otrzymane z serwerow FTP. Pozostawienie ich moze sie przydac do celow diagnostycznych lub latwego sprawdzenia zawartosci katalogow zdalnego serwera (np. do sprawdzenia, ze tworzona kopia lustrzana jest kompletna). Prosze zauwazyc, ze mimo iz Wget zapisuje w tym przypadku do pliku o znanej nazwie, nie jest to dziura w zabezpieczeniach w sytuacji, gdy uzytkownik stworzy .listing jako dowiazanie symboliczne do /etc/passwd czy innego pliku i poprosi superuzytkownika (roota) o uruchomienie Wget w tym katalogu. W zaleznosci od uzytych opcji, Wget albo odmowi zapisu do .listing (co spowoduje niepowodzenie operacji na maskach, rekurencyjnej czy zaleznej od znacznikow czasu), albo dowiazanie symboliczne zostanie usuniete i zastapione faktycznym plikiem .listing, albo tez listing zostanie zapisany do pliku .listing.numer. Choc ta sytuacja nie stwarza klopotow, jednak root nie powinien nigdy uruchamiac Wget w katalogu niezaufanego uzytkownika. Uzytkownik taki moglby na przyklad dowiazac index.html do /etc/passwd i poprosic "root"a o uruchomienie Wget z opcjami -N lub -r, tak ze plik ten zostalby nadpisany. --no-glob Wylacza obsluge masek w przypadku FTP. Obsluga masek oznacza, ze mozna uzywac znakow specjalnych, uogolniajacych (wieloznacznikow), takich jak *, ?, [ i ], do pobrania wiekszej liczby plikow z tego samego katalogu naraz, np. wget ftp://gnjilux.srk.fer.hr/*.msg Domyslnie obsluga masek bedzie wlaczona jesli URL zawiera znaki uogolniajace. Tej opcji mozna uzyc do wlaczenia badz wylaczenia obslugi masek na stale. Moze zajsc potrzeba ujecia URL-a w znaki cudzyslowu, by uchronic go przed rozwinieciem przez powloke. Obsluga masek powoduje, ze Wget oczekuje listingu katalogu, ktorego postac jest zalezna od systemu. Z tego powodu obecnie dziala tylko z uniksowymi serwerami FTP (i z tymi, ktore potrafia emulowac wyjscie uniksowego ls). --no-passive-ftp Wylacza uzycie pasywnego trybu transferu FTP. Pasywny FTP nakazuje klientowi laczacemu sie z serwerem zestawic polaczenie, zamiast wykorzystywac inne rozwiazania. Jesli komputer ma bezposrednie polaczenie z Internetem, to zarowno pasywne jak i aktywne FTP powinny dzialac tak samo dobrze. Za wiekszoscia zapor sieciowych i konfiguracji NAT, pasywny FTP ma wieksza szanse dzialania. Jednak w niektorych rzadkich konfiguracjach zapor, aktywny FTP dziala, a pasywny FTP nie. Jesli zachodzi prawdopodobienstwo, ze ma miejsce ta sytuacja, prosze uzyc opisywanej opcji lub ustawic w swym pliku konfiguracyjnym passive_ftp=off. --preserve-permissions Zachowuje uprawnienia zdalnych plikow zamiast uprawnien wynikajacych z umask. --retr-symlinks Domyslnie, przy pobieraniu katalogow FTP rekurencyjnie, gdy napotkane zostanie dowiazanie symboliczne, program podaza za nim i pobiera plik, na ktory ono wskazuje. Wget nie podaza za dowiazaniami symbolicznymi do katalogow, aby pobrac je rekurencyjnie, jednak ta funkcja moze zostac dodana w przyszlosci. Gdy poda sie --retr-symlinks=no, plik docelowy nie jest pobierany. Zamiast tego tworzone jest odpowiednie dowiazanie w lokalnym systemie plikow. Plik docelowy nie jest pobierany, chyba ze pobieranie rekurencyjne dosieglo go bezposrednio i pobralo z tego powodu. Opcja ta stanowi zagrozenie bezpieczenstwa, poniewaz zlosliwy serwer FTP moze spowodowac zapis do plikow poza oczekiwanymi katalogami, za pomoca specjalnie spreparowanego pliku .LISTING. Prosze zauwazyc, ze przy pobieraniu pliku (nie katalogu) podanego w wierszu polecen, a nie osiagnietego z powodu pobierania rekurencyjnego, opcja nie odnosi skutku. W takich przypadkach plik docelowy dowiazania jest zawsze pobierany. Opcje FTPS --ftps-implicit Opcja ta nakazuje programowi Wget uzywanie FTPS w trybie implicit. FTPS w trybie implicit inicjuje SSL/TLS na samym poczatku polaczenia. Opcja ta nie wysyla polecenia "AUTH TLS": zaklada, ze serwer komunikuje sie poprzez FTPS i bezposrednio rozpoczyna polaczenie SSL/TLS. Jesli proba ta sie powiedzie, sesja jest kontynuowana tak jak zwykla sesja FTPS (wysylane sa "PBSZ" i "PROT" itd.). FTPS w trybie implicit nie jest obecnie wymagany w implementacjach FTPS, zatem wiele serwerow go nie obsluguje. Jesli poda sie opcje --ftps-implicit bez wskazania numeru portu, uzywany jest domyslny port dla FTPS w trybie implicit, 990, zamiast domyslnego portu dla FTPS w trybie ,,zwyklym" (explicit), ktory jest taki sam jak dla FTP, 21. --no-ftps-resume-ssl Nie wznawia sesji SSL/TLS w kanale danych. Przy rozpoczeciu polaczenia danych, Wget stara sie wznowic sesje SSL/TLS, rozpoczeta uprzednio w polaczeniu kontrolnym. Wznawianie sesji SSL/TLS pozwala na unikniecie nowego uzgodnienia polaczenia (handshake), poprzez ponowne uzycie parametrow SSL/TLS z poprzedniej sesji. Serwery FTPS zwykle preferuja ten sposob, dlatego Wget stosuje go domyslnie. W rzadkich przypadkach, moze byc wskazane rozpoczecie calkiem nowej sesji SSL/TLS przy kazdym polaczeniu z danymi. Do tego wlasnie sluzy opcja --no-ftps-resume-ssl. --ftps-clear-data-connection Wszystkie polaczenia z danymi beda mialy miejsce w otwartym tekscie. Z SSL/TLS korzystac bedzie tylko polaczenie kontrolne. Wget wysle w tym celu polecenie "PROT C", ktory musi byc zaakceptowane przez serwer. --ftps-fallback-to-ftp Zapasowo skorzysta z FTP, jesli okaze sie, ze FTPS nie jest obslugiwane przez serwer docelowy. Ze wzgledow bezpieczenstwa, opcja ta nie jest stosowana domyslnie. Domyslnie nastapi bowiem wyjscie z bledem. Jesli serwer nie odpowie prawidlowo na poczatkowe polecenie "AUTH TLS" albo, w przypadku FTPS w trybie implicit, jesli pierwotna proba polaczenia SSL/TLS zostanie odrzucona, program uzna, ze serwer nie obsluguje FTPS. Opcje pobierania rekurencyjnego -r --recursive Wlacza pobieranie rekurencyjne. Domyslny maksymalny poziom wynosi 5. -l glebokosc --level=glebokosc Ustawia maksymalna liczbe podkatalogow, do ktorych zaglebi sie Wget, na glebokosc. Aby zapobiec przypadkowemu pobieraniu bardzo duzych stron, przy korzystaniu z rekurencji, domyslnie ustalony jest limit 5 tj. program zaglebi sie na co najwyzej 5 katalogow, zaczynajac od podanego URL-a. Ustawienie -l 0 lub -l inf ustali glebokosc nieograniczona. wget -r -l 0 http://I/1.html Mozna by oczekiwac, ze polecenie to pobraloby jedynie 1.html, ale niestety tak nie jest, gdyz -l 0 jest rownowazne -l inf -- czyli nieskonczonej rekurencji. Do pobrania pojedynczej strony HTML (lub ich grupy), nalezy ja (lub je wszystkie) podac w wierszu polecen, pomijajac opcje -r i -l. Aby pobrac konieczne elementy pojedynczej strony HTML, zob. opcje page requisites. --delete-after Ta opcja nakazuje Wget usuniecie kazdego z plikow, jaki pobiera, po wykonaniu sciagania. Jest przydatna do pobierania wstepnego (prefetching) popularnych stron poprzez serwer posredniczacy, np.: wget -r -nd --delete-after http://whatever.com/~popular/page/ Opcja -r nakazuje pobieranie rekurencyjne, a -nd nietworzenie katalogow. Prosze zauwazyc, ze --delete-after usuwa pliki z lokalnego komputera. Nie wydaje polecenia DELE, na przyklad zdalnym osrodkom FTP. Takze jesli podano --delete-after, to --convert-links jest ignorowane, wiec przede wszystkim pliki .orig po prostu nie sa tworzone. -k --convert-links Po zakonczeniu pobierania konwertuje odnosniki w dokumencie tak, by nadawaly sie do lokalnego przegladania. Dotyczy to nie tylko widzialnych odnosnikow hipertekstowych, ale kazdej czesci dokumentu, ktora prowadzi do zewnetrznych materialow, jak osadzone obrazki, odnosniki do arkuszy stylow, odnosniki hipertekstowe do zawartosci innej niz HTML, itp. Kazdy odnosnik bedzie zmieniony na jeden z dwu sposobow: o Odnosniki do plikow, ktore zostaly sciagniete przez Wget zostana zmienione tak, by odwolywaly sie do pliku, na jaki wskazuja, jako odnosniki wzgledne. Przyklad: jesli sciagniety plik /foo/doc.html jest powiazany z z /bar/img.gif, rowniez sciagnietym, to odnosnik w doc.html zostanie zmieniony tak, by wskazywal na ../bar/img.gif. Ten rodzaj przeksztalcenia dziala bezproblemowo dla dowolnej kombinacji katalogow. o Odnosniki do plikow, ktore nie zostaly sciagniete przez Wget zostana zmienione tak, by zawieraly nazwe hosta i sciezke bezwzgledna miejsca, na ktore wskazuja. Przyklad: jesli sciagniety plik /foo/doc.html jest powiazany z z /bar/img.gif (lub z ../bar/img.gif), to odnosnik w doc.html zostanie zmieniony tak, by wskazywal na http://hostname/bar/img.gif. Z tego powodu, przegladanie lokalne dziala niezawodnie: jesli powiazany plik byl sciagniety, to odnosnik wskazuje na jego lokalna nazwe, jesli nie byl -- to na pelny adres internetowy, a nie pojawia sie popsuty odnosnik. Konwersja pierwotnych odnosnikow na odnosniki wzgledne zapewnia nam mozliwosc przesuwania pobranej hierarchii katalogow do innego katalogu. Prosze zauwazyc, ze dopiero na samym koncu pobierania Wget moze rozpoznac, ktore odnosniki zostaly sciagniete. Z tego powodu, opcja -k wykonuje swoja prace po zakonczeniu wszystkich pobran. --convert-file-only Opcja przetwarza jedynie plikowa czesc URL-a, nie zmieniajac pozostalej czesci URL-a. Czesc plikowa jest czasem nazywana ,,basename", jednak tutaj unikamy tego pojecia, aby nie wprowadzac w blad. Dziala to szczegolnie dobrze w polaczeniu z opcja --adjust-extension, choc nie jest to wymuszone. Jest to przydatne do wypelniania buforow internetowych plikami pochodzacych z roznych stacji. Przyklad: jesli jakies dowiazanie wskazuje na //foo.com/bar.cgi?xyz z opcja --adjust-extension, a lokalnym polozeniem docelowym mialoby byc ./foo.com/bar.cgi?xyz.css, to dowiazanie zostanie przeksztalcone na //foo.com/bar.cgi?xyz.css. Prosze zauwazyc, ze zmodyfikowano tylko plikowa czesc URL-a. Jego pozostala czesc nie ulegla zmianie, wlacznie ze sciezka sieciowa ("//"), ktora w innym przypadku zostalaby przetworzona przez program Wget i przeksztalcona na schemat efektywny (tj. "http://"). -K --backup-converted Podczas konwersji pliku zachowuje kopie zapasowa pierwotnej wersji z przyrostkiem .orig. Wplywa na zachowanie opcji -N. -m --mirror Wlacza opcje odpowiednie do tworzenia kopii lustrzanych. Ta opcja wlacza rekurencje, stosowanie znacznikow czasu, ustawia nieograniczony poziom rekurencji i zachowuje wypisania zawartosci katalogow FTP. Obecnie jest rownowazna uzyciu -r -N -l inf --no-remove-listing. -p --page-requisites Opcja powoduje, ze Wget sciagnie wszystkie pliki niezbedne do poprawnego wyswietlenia danej strony HTML. Obejmuje to takie rzeczy jak grafike, dzwieki i powiazane arkusze stylow. Przy zwyklym trybie pracy, podczas pobierania pojedynczej strony HTML, ewentualne powiazane dokumenty, ktore moga byc potrzebne do poprawnego jej wyswietlenia, nie sa pobierane. Pomoc moze uzycie opcji -r z -l, ale poniewaz Wget normalnie nie odroznia dokumentow zewnetrznych od wlaczonych, na ogol pozostaje sie z ,,oskubanymi dokumentami", ktorym brakuje potrzebnych elementow towarzyszacych. Na przyklad, powiedzmy, ze dokument 1.html zawiera znacznik odnoszacy sie do 1.gif i znacznik wskazujacy na zewnetrzny dokument 2.html. Powiedzmy, ze 2.html jest podobny, tyle, ze jego obrazkiem jest 2.gif a odnosnik wskazuje na 3.html. Zalozmy, ze kontynuujemy takie zaleznosci az do jakiejs dowolnie duzej liczby. Jesli wykona sie polecenie: wget -r -l 2 http://I/1.html to zostana pobrane 1.html, 1.gif, 2.html, 2.gif i 3.html. Jak widac, 3.html nie posiada towarzyszacego mu elementu, gdyz Wget w celu okreslenia miejsca, gdzie powinien przerwac rekurencje po prostu zlicza liczbe skokow (az do 2) od poczatkowego 1.html. Jednak przy takim poleceniu: wget -r -l 2 -p http://I/1.html zostana sciagniete wszystkie powyzsze pliki oraz wymagany przez 3.html plik 3.gif. Podobnie, wget -r -l 1 -p http:///1.html spowoduje pobranie 1.html, 1.gif, 2.html i 2.gif. Mozna by sadzic, ze: wget -r -l 0 -p http://I/1.html pobraloby tylko 1.html i 1.gif, ale niestety tak nie jest, gdyz -l 0 jest rownowaznikiem -l inf czyli nieskonczonej rekurencji. Do pobrania pojedynczej strony HTML (lub ich grupy, wszystkich podanych w wierszu polecen lub w pliku wejsciowym URL-i -i) i towarzyszacych jej (lub im) elementow, wystarczy pominac -r i -l: wget -p http:///1.html Prosze zauwazyc, ze Wget zachowa sie tak, jakby podano opcje -r, ale zostanie pobrana tylko pojedyncza strona i jej elementy. Program nie bedzie podazal za odnosnikami z tej strony do zewnetrznych dokumentow. Faktycznie, do sciagania pojedynczej strony i wszystkich towarzyszacych jej elementow (nawet jesli leza one na odrebnych serwerach WWW) i upewnienia sie, ze calosc lokalnie poprawnie sie wyswietla, autor oprocz -p korzysta z kilku dodatkowych opcji: wget -E -H -k -K -p http:/// Konczac ten temat, warto wiedziec, ze Wget uwaza za odnosnik do dokumentu zewnetrznego kazdy URL podany w znaczniku , lub , oprocz . --strict-comments Wlacza scisle przetwarzanie komentarzy HTML. Domyslnie, komentarze sa przerywane po pierwszym wystapieniu -->. Zgodnie ze specyfikacja, komentarze HTML sa wyrazone jako deklaracje SGML. Deklaracja jest specjalnym znacznikiem, rozpoczynajacym sie , np. , ktora moze zawierac dodatkowe komentarze, miedzy para ogranicznikow --. Komentarze HTML sa ,,pustymi deklaracjami", deklaracjami SGML bez tekstu niebedacego komentarzem. Stad jest poprawnym komentarzem, jak rowniez , lecz nim nie jest. Z drugiej strony, wiekszosc piszacym HTML nie odczytuje komentarzy jako cokolwiek innego poza tekstem ograniczonym , co nie jest tym samym. Np. cos takiego: jest poprawnym komentarzem o ile liczba minusow jest wielokrotnoscia czterech (sic!). Jesli tak nie jest, to scisle mowiac komentarz konczy sie dopiero po nastepnym wystapieniu --, ktore moze nastapic np. na koncu dokumentu. Z tego powodu, wiele popularnych przegladarek internetowych calkowicie ignoruje specyfikacje i implementuje cos, czego uzytkownicy moga sie spodziewac: komentarze ograniczone . Do wersji 1.9 Wget interpretowal komentarze w sposob scisly, co powodowalo wybrakowanie wielu linkow w stronach internetowych wyswietlajacych sie poprawnie w przegladarkach, lecz majacych nieszczescie w postaci niezgodnych z norma komentarzy. Poczawszy od wersji 1.9, Wget dolaczyl do grona klientow implementujacych ,,naiwne" komentarze, zamykajac kazdy komentarz po pierwszym wystapieniu -->. Jesli zajdzie potrzeba scislego parsowania komentarzy, ta opcja je wlaczy. Opcje rekurencyjnego akceptowania/odrzucania -A lista-akc --accept lista-akc -R lista-odrz --reject lista-odrz Okresla oddzielona przecinkami liste przyrostkow lub wzorcow nazw plikow do, odpowiednio, zaakceptowania lub odrzucenia. Prosze pamietac, ze maski (wieloznaczniki) tzn. *, ?, [ lub ], ktore pojawia sie jako element listy-akc lub listy-odrz, zostana potraktowane jako wzorzec, a nie przyrostek. W takim przypadku, aby uniknac rozwiniecia nazwy przez powloke nalezy ujac wzorzec w cudzyslowy, jak w przykladach -A "*.mp3" lub -A '*.mp3'. --accept-regex url-wyr-reg --reject-regex url-wyr-reg Okresla wyrazenie regularne do zaakceptowania lub odrzucenia calego URL-a. --regex-type typ-wyr-reg Okresla typ wyrazenia regularnego. Dozwolonymi wartosciami sa posix i pcre. Prosze zauwazyc, ze w celu uzycia typu pcre wget musi miec wkompilowana obsluge libpcre. -D lista-domen --domains=lista-domen Ustala domeny, do ktorych program moze przechodzic. Lista-domen jest lista separowana przecinkami. Prosze zauwazyc, ze ta opcja nie wlacza -H. --exclude-domains lista-domen Podaje domeny, do ktorych program ma nie przechodzic. --follow-ftp Podaza za odnosnikami FTP z dokumentow HTML. Bez tej opcji Wget bedzie ignorowal wszelkie odnosniki do FTP. --follow-tags=lista Wget ma wewnetrzna tablice par: znacznik HTML/atrybut, ktora posluguje sie przy poszukiwaniu powiazanych dokumentow podczas pobierania rekurencyjnego. Aby brany byl pod uwage tylko pewien podzbior tych znacznikow, nalezy uzyc tej opcji, podajac je w postaci listy separowanej przecinkami. --ignore-tags=lista Jest to przeciwienstwo opcji --follow-tags. Dzieki podaniu listy rozdzielonych przecinkami znacznikow HTML mozna pominac je podczas rekurencyjnego szukania dokumentow do pobrania. Niegdys, ta opcja byla najlepszym wyborem do sciagania pojedynczej strony razem z jej elementami, uzyta w wierszu polecen: wget --ignore-tags=a,area -H -k -K -r http:/// Jednak autor tej opcji przeszedl przez strone ze znacznikami typu i uswiadomil sobie, ze -G nie wystarcza. Nie mozna po prostu nakazac Wget ignorowania , gdyz wowczas nie beda sciagane arkusze stylow. Obecnie najlepszym sposobem pobierania pojedynczej strony razem z jej elementami jest specjalnie przeznaczona do tego opcja --page-requisites. --ignore-case Ignoruje wielkosc znakow przy dopasowywaniu plikow i katalogow. Wplywa to na zachowanie opcji -R, -A, -I i -X, podobnie jak przy stosowaniu masek przy pobieraniu stron FTP. Na przyklad, po zastosowaniu tej opcji -A "*.txt" dopasuje plik1.txt, lecz rowniez plik.TXT, plik3.TxT itd. Cudzyslowy w przykladzie powoduja, ze powloka nie rozwija wzorca. -H --span-hosts Wlacza przechodzenie pomiedzy hostami przy pobieraniu rekurencyjnym. -L --relative Podaza tylko za odnosnikami wzglednymi. Przydatne do pobierania konkretnej strony bez zadnych odwracajacych uwage dodatkow, nawet z tego samego hosta. -I lista --include-directories=lista Okresla liste rozdzielonych przecinkami katalogow, do ktorych ma przechodzic program podczas pobierania. Elementy listy moga zawierac znaki uogolniajace (maski). -X lista --exclude-directories=lista Okresla liste rozdzielonych przecinkami katalogow, ktore chcemy wykluczyc z pobierania. Elementy listy moga zawierac znaki uogolniajace (maski). -np --no-parent Powoduje, ze Wget przy pobieraniu rekurencyjnym nigdy nie wchodzi do katalogu nadrzednego. Przydatna opcja, gdyz gwarantuje, ze sciagane beda tylko pliki ponizej pewnego poziomu. SRODOWISKO Wget obsluguje serwery posredniczace do pobieran przez HTTP i FTP. Standardowa metoda podawania polozenia serwera posredniczacego w przypadku Wgeta, sa ponizsze zmienne srodowiskowe: http_proxy https_proxy Gdy ustawione, zmienne http_proxy i https_proxy powinny zawierac URL-e serwerow posredniczacych w, odpowiednio, polaczeniach HTTP0 i HTTPS. ftp_proxy Zmienna powinna zawierac URL serwera posredniczacego w polaczeniach FTP. Dosc czesto spotyka sie sytuacje, gdy http_proxy i ftp_proxy zawieraja ten sam URL. no_proxy Zmienna powinna zawierac liste rozszerzen domen (separatorem jest przecinek), do ktorych nie beda stosowane serwery posredniczace. Jesli na przyklad wartosc no_proxy wynosi .mit.edu, to serwery posredniczace nie beda stosowane do pobierania dokumentow z MIT. STATUS ZAKONCZENIA W przypadku wystapienia problemow Wget moze zwrocic jeden z ponizszych kodow zakonczenia. 0 Nie wystapily zadne problemy. 1 Podstawowy kod bledu. 2 Blad przetwarzania danych -- np. przy przetwarzaniu opcji wiersza polecenia, .wgetrc lub .netrc... 3 Blad wejscia/wyjscia pliku. 4 Blad sieci. 5 Blad weryfikacji SSL. 6 Blad uwierzytelnienia nazwy uzytkownika/hasla. 7 Bledy protokolow. 8 Serwer zwrocil bledna odpowiedz. Oprocz kodow 0 i 1, kody zakonczenia o mniejszej wartosci liczbowej maja pierwszenstwo w sytuacji, gdy wystapi wiele typow bledow. W wersjach Wgeta do 1.12, kody zakonczenia byly niespojne i niezbyt pomocne. Pobierania rekurencyjne zawsze zwracaly 0 (powodzenie) bez wzgledu na wystapienie ewentualnych bledow, a nierekurencyjne zwracaly zawsze kod zakonczenia odpowiadajacy ostatniej probie pobierania. PLIKI /usr/local/etc/wgetrc Domyslne polozenie globalnego pliku startowego. .wgetrc Plik startowy uzytkownika. USTERKI Zachecamy do zamieszczania zgloszen bledow dotyczacych GNU Wget w systemie bledow (zob. ) lub na nasza liste dyskusyjna . Pod adresem jest dostepnych wiecej informacji (jak zasubskrybowac, archiwa listy ...). Przed faktycznym przedlozeniem zgloszenia bledu, prosze sprobowac zastosowac sie do kilku prostych wskazowek. 1. Prosze upewnic sie, ze obserwowane zachowanie jest rzeczywiscie bledem. Jesli Wget sie wywala, jest to blad. Jesli nie zachowuje sie zgodnie z dokumentacja, jest to blad. Jesli cos dziala dziwnie, ale nie ma pewnosci jak powinno to wygladac, rowniez moze byc to blad, ale prosze dwa razy sprawdzic dokumentacje i listy dyskusyjne. 2. Prosze sprobowac powtorzyc ten blad w mozliwie najprostszych warunkach. Np. jesli Wget pada podczas sciagania wget -rl0 -kKE -t5 -Y0 http://example.com -o /tmp/log, nalezy sprobowac sprawdzic, czy to wywalanie sie jest powtarzalne i czy pojawia sie przy prostszym zestawie opcji. Mozna nawet sprobowac zaczac pobieranie od strony, przy ktorej wystapila awaria i sprawdzic, czy to nie ta strona w jakis sposob ja powoduje. Ponadto, choc co prawda prawdopodobnie autor bedzie zainteresowany zawartoscia pliku .wgetrc uzytkownika, zwykle skopiowanie go do wiadomosci o bledzie jest raczej zlym pomyslem. Zamiast tego, nalezy najpierw sprawdzic, czy blad powtarza sie przy .wgetrc przeniesionym w inne miejsce. Prosze przeslac odpowiednie fragmenty tego pliku tylko wtedy, gdy okaze sie, ze blad zalezy od ustawien .wgetrc. 3. Prosze uruchomic Wget z opcja -d i przeslac uzyskany wynik (lub zwiazane z bledem jego czesci). Jesli Wget zostal skompilowany bez obslugi debugowania, prosze go przekompilowac. Duzo latwiej jest sledzic bledy z udostepniona diagnostyka. Uwaga: prosze upewnic sie, ze usunelo sie wszystkie potencjalnie prywatne dane z dziennika debugowania, przed wyslaniem go na adres zgloszen bledow. Opcja -d nie bedzie starala sie zbierac danych prywatnych, lecz dziennik bedzie zawieral dosc kompletny zapis komunikacji Wgeta z serwerem, co moze obejmowac takze hasla i czesc pobranych danych. Zgloszenia bledow sa archiwizowane publicznie, tak wiec nalezy uznac, ze zgloszenia bledow sa rowniez dostepne publicznie. 4. Jesli Wget sie wywala, prosze uruchomic go w debuggerze, np. gdb `which wget` core i wpisac where, by otrzymac stos wywolania (backtrace). Moze sie to nie powiesc, jesli administrator systemu wylaczyl pliki core, ale zawsze mozna sprobowac. ZOBACZ TAKZE Nie jest to kompletny podrecznik GNU Wgeta. Wiecej informacji, w tym pelniejszy opis niektorych opcji oraz wiele polecen mozliwych do zastosowania w plikach .wgetrc i z opcja -e znajduje sie we wpisie wget w GNU Info. Prosze sprawdzic rowniez wget2(1), zaktualizowana wersje GNU Wget z jeszcze lepsza obsluga pobieran rekurencyjnych oraz nowoczesnych protokolow jak HTTP/2. AUTOR Pierwotny autor: Hrvoje Niksic . Obecnie utrzymywane przez Darshita Shaha oraz Tima Ruhsena . PRAWA AUTORSKIE Copyright (c) 1996--2011, 2015, 2018--2024 Free Software Foundation, Inc. Zezwala sie na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego dokumentu na warunkach Licencji Wolnej Dokumentacji GNU (GNU Free Documentation License) w wersji 1.3 lub jakiejkolwiek nowszej wersji opublikowanej przez Fundacje Wolnego Oprogramowania, przy czym Sekcjami niezmiennymi sa ,,GNU General Public License" i ,,GNU Free Documentation License", bez tresci przedniej lub tylnej strony okladki. Egzemplarz licencji zamieszczono w sekcji zatytulowanej ,,GNU Free Documentation License". TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Wojtek Kotwica i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . GNU Wget 1.25.0 21 marca 2025 r. WGET(1)