.$redefine CHAPTER=typ .$redefine SECTION=wget .$redefine TITLE=Программа wget .+ section.inchtml .$redefine SEC_JUMPER=^(RELS_PTN find,mtools) .+ section_begin.inchtml ^(|BEGIN_PAGE Что такое wget)
^(H_PROG:Wget) -- это программа для "вытягивания" файлов из Internet при помощи протоколов HTTP или FTP.
Основные достоинства ^(H_PROG:Wget):
^(H_PROG:Wget) выдает список всех опций при вызове с ключом ^(H_TYPE:--help), причем поскольку выдача довольно длинная, лучше пользоваться командой ^(QUOTE_CMD wget --help | less)
Для того, чтобы узнать все возможности ^(H_PROG:Wget), следует заглянуть в info-документацию по нему. ^(END_PAGE) ^(|BEGIN_PAGE Использование)
Поскольку у ^(H_CMD:wget) есть огромное количество ключей, модифицирующих его поведение, мы рассмотрим на примерах несколько наиболее часто используемых случаев. ^(|SUBPAGE Простое скачивание файла)
В самом простом случае программе указывается один параметр URL -- ссылка на файл, который надо получить: ^(BEGIN_EXAMPLE) bobby:~/soft% wget ftp://rdist.inp.nsk.su/pub/Linux/redhat-5.2/i386/dosuti ls/lodlin16.tgz --15:23:43-- ftp://rdist.inp.nsk.su:21/pub/Linux/redhat-5.2/i386/dosutils /lodlin16.tgz => `lodlin16.tgz' Connecting to rdist.inp.nsk.su:21... connected! Logging in as anonymous ... Logged in! ==> TYPE I ... done. ==> CWD pub/Linux/redhat-5.2/i386/dosutils ... done. ==> PORT ... done. ==> RETR lodlin16.tgz ... done. Length: 87,210 (unauthoritative) 0K -> .......... .......... .......... .......... .......... [ 58%] 50K -> .......... .......... .......... ..... [100%] 15:23:43 (604.01 KB/s) - `lodlin16.tgz' saved [87210] bobby:~/soft% _ ^(END_EXAMPLE)
При скачивании каждого килобайта отображается один символ ^(H_TYPE:.).
Можно указать подряд несколько URL -- в этом случае файлы будут скачаны один за другим. ^(|SUBPAGE Скачивание при плохой связи)
Для того, чтобы ^(H_CMD:wget) повторял попытки взять файл до тех пор, пока не скачает его целиком, надо указывать ключи ^(H_TYPE:-c) и ^(H_TYPE:-t 0). Первый означает "продолжать качать с того места, где соединение оборвалось" (continue), а второй позволяет указать число попыток, 0 -- бесконечно.
Например, чтобы скачать исходные тексты проигрывателя .mp3-файлов X11Amp, можно воспользоваться командой ^(QUOTE_CMD wget -c -t 0 http://www.x11amp.bz.nu/files/x11amp-0.9-beta1.1.tar.gz)
Реально ключи ^(H_TYPE:-c -t 0) стоит указывать практически всегда, кроме как разве что в локальной сети. ^(|SUBPAGE Шаблоны)
При перекачке по FTP можно в именах файлов указывать шаблоны (естественно, "закавычивая" их). Например, команда ^(QUOTE_CMD wget 'ftp://rdist.inp.nsk.su/pub/Linux/redhat-5.2/updates/i386/XFree86*.rpm') скачает все обновления к системе XFree86. ^(|SUBPAGE Рекурсивное скачивание)
Для рекурсивного скачивания используются ключи ^(H_TYPE:-r), ^(H_TYPE:-l) и ^(H_TYPE:-np). Ключ ^(H_TYPE:-r) (recursive) включает рекурсивность. Ключ ^(H_TYPE:-l) (level) позволяет указать насколько "глубоко" программа должна следовать по ссылкам; 0 -- бесконечно глубоко, по умолчанию установлено 5. И, наконец, ключ ^(H_TYPE:-np) (no parent) запрещает следовать ссылкам выше указанной директории.
При рекурсивном скачивании ^(H_CMD:wget) автоматически создает соответствующее дерево директорий.
К примеру, следующая команда могла бы использоваться для скачивания целого домашнего сайта (адрес вымышленный): ^(QUOTE_CMD wget -r -l 0 -np http://www.h-hosts.com/users/goofy/)
При этом файлы будут помещаться в директорию ^(H_PATH:./www.h-hosts.com/users/goofy/). ^(BEGIN_NOTE) ^(H_PROG:Wget), будучи культурной программой, при рекуррентном скачивании уважает т.н. "Протокол Web-роботов", и может пропускать часть файлов (запрещенных в файле ^(H_PATH:robots.txt) на сервере). Чтобы отключить эту "культурность", можно воспользоваться ключом ^(H_TYPE:-e robots=off).
Почитать про Протокол Web-роботов можно в info-документации по ^(H_PROG:Wget), воспользовавшись командой ^(QUOTE_CMD info wget appendices robots) или по адресу ^(QUOTE_URL http://info.webcrawler.com/mak/projects/robots/robots.html) ^(END_NOTE) ^(|SUBPAGE Фоновый режим)
При указании ключа ^(H_TYPE:-b) (background) программа сразу переходит в фоновый режим, так что пользователь может заниматься другими делами или даже выйти из системы -- ^(H_CMD:wget) будет продолжать свою работу.
При сообщения, которые выдавались бы на экран, будут идти в файл ^(H_PATH:wget.log) (а если он уже есть, то в ^(H_PATH:wget.log.1), ^(H_PATH:wget.log.2) и т.д.).
Пример: ^(BEGIN_EXAMPLE) bobby:~/soft% wget -b http://www.mit.edu/afs/sipb/user/xiphmont/cdpa ranoia/download/cdparanoia-III-alpha9.5.src.tgz Continuing in background. Output will be written to `wget-log'. bobby:~/soft% _ ^(END_EXAMPLE)
Для просмотра log-файла по мере скачивания удобно пользоваться командой ^(H_TYPE:tail -f): ^(BEGIN_EXAMPLE) bobby:~/soft% tail -f wget-log --16:16:45-- http://www.mit.edu:80/afs/sipb/user/xiphmont/cdparanoia/down load/cdparanoia-III-alpha9.5.src.tgz => `cdparanoia-III-alpha9.5.src.tgz' Connecting to www.mit.edu:80... connected! HTTP request sent, awaiting response... 200 OK Length: 92,595 [application/octet-stream] 0K -> .......... .......... .......... .......... .......... [ 55%] 50K -> ..._ ^(END_EXAMPLE) ^(|SUBPAGE Использование прокси-серверов)
^(H_PROG:Wget) умеет пользоваться прокси-серверами как для HTTP, так и для FTP. Достаточно перед вызовом программы присвоить адрес прокси-сервера переменным окружения ^(H_PATH:http_proxy) или ^(H_PATH:ftp_proxy) соответственно (имена маленькими буквами!).
^(H_PROG:Wget) понимает как "официальное" указание адреса, так и сокращенное. Поэтому команды ^(QUOTE_CMD export http_proxy=http://proxy.nsc.ru:8080/) и ^(QUOTE_CMD export http_proxy=proxy.nsc.ru:8080) эквивалентны. ^(|SUBPAGE Скачивание "через перевалочную базу")
Современные академгородковские реалии таковы, что зачастую скачать файл с некоего зарубежного сервера напрямую не удается из-за плохой связи. При этом иногда не помогает даже способность ^(H_PROG:Wget) к докачке.
Можно обойти эту проблему, если есть доступ (по telnet, rlogin или ssh) к unix-эккаунту где-нибудь за рубежом, где связь намного лучше.
При этом выполняются следующие действия:
Такой подход дает б^(ACCENT:о)льшую гибкость по сравнению с прямой перекачкой, а уменьшение размера кусочков, на которые разбивается файл, иногда позволяет достичь необходимой надежности. ^(BEGIN_WARNING) Пользоваться таким приемом можно только в том случае, если это не нарушает политики, принятой в тех учреждениях, которых это касается. ^(END_WARNING) ^(END_PAGE) .+ section_end.inchtml