MC, 15:57 piątek, 12.04.2013 r.
Ilustracja do artykułu: Linux wget - Pobieranie plików przez serwer proxy (http, https i ftp)

Linux wget - Pobieranie plików przez serwer proxy (http, https i ftp)

W tym wpisie chciałbym pokazać jak sprząc do działania program wget z serwerem proxy, tak by za jego pośrednictwem pobierać pliki.

Jak pobierać pliki wget-em przez proxy?

Generalnie ścieżki są dwie i zaczniemy od tej mniej przystępnej w większości przypadków. Mowa o zmianach w pliku konfiguracyjnym programu wget. Znajduje się on pod ścieżką: /etc/wgetrc. Możemy więc wydać polecenie:
sudo gedit /etc/wgetrc
A następnie odszukać wersy z wpisami definiującymi serwery proxy, dla poszczególnych typów połączeń (http_proxy, https_proxy, ftp_proxy), odkomentować je i podać prawdziwe adresy serwerów. Gdy to zrobimy należy zapisać zmiany w pliku i możemy zacząć używać wgeta pobierającego via proxy, prosząc o to podczas wywołania np.:
wget --proxy=on http://www.jakis.adres.pl/pliku.zip

Czy można zdefiniować adres serwera proxy podczas wywołania programu?

Drugi, w mojej ocenie przystępniejszy sposób polega na ustaleniu zmiennej środowiskowej HTTP_PROXY (bądź HTTPS_PROXY lub FTP_PROXY - zależnie od potrzeby), z której wget skorzysta. A zrobimy to w czasie wywołania programu, czyli będzie to rozwiązanie one-line.
Posłużymy się przy tym flagą -e, która pozwoli nam wykonać pewne operacje przed rozpoczęciem właściwego działania programu. Zatem ustalenie adresu serwera http proxy, z którego będziemy chcieli skorzystać podczas pobierania pliku, przyjmie następującą postać:
wget -e "http_proxy = http://adres:port" http://www.jakis.adres.pl/pliku.zip

Uważam, że jest to rozwiązanie zdecydowanie wygodniejsze od zmieniania pliku konfiguracyjnego programu. Tym bardziej, że w ten sposób możemy z łatwością wywołać np. kilka instancji wgeta i każda może pracować z innym serwerem proxy. Warto również wspomnieć, że możemy oczywiście łączyć inne opcje wgeta, np. te definiujące parametry nagłówka HTTP, takie jak User Agent. Dla przykładu:

wget -U "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0" -e "http_proxy = http://adres:port" http://www.jakis.adres.pl/pliku.zip

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: