<< Предыдущий раздел | /\ Содержание | >> Следующий раздел
Wget -- это программа для "вытягивания" файлов из Internet при помощи протоколов HTTP или FTP.
Основные достоинства Wget:
Wget выдает список всех опций при вызове с ключом "--help", причем поскольку выдача довольно длинная, лучше пользоваться командой
wget --help | less
Для того, чтобы узнать все возможности Wget, следует заглянуть в info-документацию по нему.
Поскольку у wget есть огромное количество ключей, модифицирующих его поведение, мы рассмотрим на примерах несколько наиболее часто используемых случаев.
Простое скачивание файла
В самом простом случае программе указывается один параметр URL -- ссылка на файл, который надо получить:
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% _ |
При скачивании каждого килобайта отображается один символ ".".
Можно указать подряд несколько URL -- в этом случае файлы будут скачаны один за другим.
Скачивание при плохой связи
Для того, чтобы wget повторял попытки взять файл до тех пор, пока не скачает его целиком, надо указывать ключи "-c" и "-t 0". Первый означает "продолжать качать с того места, где соединение оборвалось" (continue), а второй позволяет указать число попыток, 0 -- бесконечно.
Например, чтобы скачать исходные тексты проигрывателя .mp3-файлов X11Amp, можно воспользоваться командой
wget -c -t 0 http://www.x11amp.bz.nu/files/x11amp-0.9-beta1.1.tar.gz
Реально ключи "-c -t 0" стоит указывать практически всегда, кроме как разве что в локальной сети.
Шаблоны
При перекачке по FTP можно в именах файлов указывать шаблоны (естественно, "закавычивая" их). Например, команда
скачает все обновления к системе XFree86.wget 'ftp://rdist.inp.nsk.su/pub/Linux/redhat-5.2/updates/i386/XFree86*.rpm'
Рекурсивное скачивание
Для рекурсивного скачивания используются ключи "-r", "-l" и "-np". Ключ "-r" (recursive) включает рекурсивность. Ключ "-l" (level) позволяет указать насколько "глубоко" программа должна следовать по ссылкам; 0 -- бесконечно глубоко, по умолчанию установлено 5. И, наконец, ключ "-np" (no parent) запрещает следовать ссылкам выше указанной директории.
При рекурсивном скачивании wget автоматически создает соответствующее дерево директорий.
К примеру, следующая команда могла бы использоваться для скачивания целого домашнего сайта (адрес вымышленный):
wget -r -l 0 -np http://www.h-hosts.com/users/goofy/
При этом файлы будут помещаться в директорию ./www.h-hosts.com/users/goofy/.
|
Wget, будучи культурной программой, при рекуррентном
скачивании уважает т.н. "Протокол Web-роботов", и может пропускать
часть файлов (запрещенных в файле robots.txt на сервере).
Чтобы отключить эту "культурность", можно воспользоваться ключом
"-e robots=off".
Почитать про Протокол Web-роботов можно в info-документации по Wget, воспользовавшись командой или по адресу http://info.webcrawler.com/mak/projects/robots/robots.html |
Фоновый режим
При указании ключа "-b" (background) программа сразу переходит в фоновый режим, так что пользователь может заниматься другими делами или даже выйти из системы -- wget будет продолжать свою работу.
При сообщения, которые выдавались бы на экран, будут идти в файл wget.log (а если он уже есть, то в wget.log.1, wget.log.2 и т.д.).
Пример:
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% _ |
Для просмотра log-файла по мере скачивания удобно пользоваться командой "tail -f":
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 -> ..._ |
Использование прокси-серверов
Wget умеет пользоваться прокси-серверами как для HTTP, так и для FTP. Достаточно перед вызовом программы присвоить адрес прокси-сервера переменным окружения http_proxy или ftp_proxy соответственно (имена маленькими буквами!).
Wget понимает как "официальное" указание адреса, так и сокращенное. Поэтому команды
иexport http_proxy=http://proxy.nsc.ru:8080/
эквивалентны.export http_proxy=proxy.nsc.ru:8080
Скачивание "через перевалочную базу"
Современные академгородковские реалии таковы, что зачастую скачать файл с некоего зарубежного сервера напрямую не удается из-за плохой связи. При этом иногда не помогает даже способность Wget к докачке.
Можно обойти эту проблему, если есть доступ (по telnet, rlogin или ssh) к unix-эккаунту где-нибудь за рубежом, где связь намного лучше.
При этом выполняются следующие действия:
Такой подход дает большую гибкость по сравнению с прямой перекачкой, а уменьшение размера кусочков, на которые разбивается файл, иногда позволяет достичь необходимой надежности.
|
Пользоваться таким приемом можно только в том случае, если это не нарушает политики, принятой в тех учреждениях, которых это касается. |
<< Предыдущий раздел | /\ Содержание | >> Следующий раздел