До обзора специализированных решений хотелось бы напомнить, что такие браузеры, как Opera и Firefox, имеют неплохие менеджеры закачек. К Firefox также есть плагин FlashGot (http://www.flashgot.net/), по популярности занимающий первое место среди плагинов для этого браузера и умеющий автоматически определять установленные в системе менеджеры закачек, перехватывать ссылки с файлами определенных в настройках расширений и передавать их выбранному менеджеру закачек. Применительно к Linux FlashGot умеет совместно работать с такими менеджерами, как Aria, cURL, Gnome Gwget, KDE Kget и Downloader 4 X.
Закачка с командной строки
Самым популярным инструментом для закачки файлов и целых сайтов является утилита GNU Wget, которая, как правило, устанавливается по умолчанию во многих дистрибутивах Linux. Эта утилита поддерживает все популярные протоколы HTTP/HTTPS и FTP, умеет работать через HTTP-прокси-сервер. Wget удобна, так как является неинтерактивной программой: указав на сайт, можно вообще о ней забыть. Повлиять на ее работу можно, только уничтожив процесс (например, нажав Ctrl+D в той консоли, где запущена программа). При использовании веб-браузера пользователь должен постоянно отвечать на какие-то вопросы, а скачивание больших объемов информации может быть утомительно. Здесь же для копирования сайта целиком достаточно ввести команду:
$ wget http://server.org/
Через некоторое время в текущем каталоге появится полная копия сайта; чтобы при обрыве соединения закачка возобновлялась, добавляете параметр -с. Так можно скачать отдельный файл.
$ wget -c http://server.org/file.rar
Параметр -r указывает на рекурсивный обход, а –l – на его глубину. Обойдите рекурсивно все каталоги сайта на глубину не более 10:
$ wget -r -l10 http://server.org/
Наиболее часто используемые параметры можно указать в конфигурационном файле .wgetrc, который создается в домашнем каталоге пользователя. Удобно скачивать файлы по расписанию. Например, создайте задачу для закачки файла в 02.00 (необходимо, чтобы в системе был запущен демон atd):
$ at 0200
at> wget -c http://server.org/file.rar
at> Нажимаете Ctrl+D
Wget – удобная и популярная программа, но, к сожалению, развивающаяся очень медленно, поэтому стоит обратить внимание на cURL (http://curl.haxx.se/), которая поддерживает на порядок большее количество протоколов: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE и LDAP. Она знает о сертификатах SSL, прокси, cookies, возможна аутентификация пользователей по имени и паролю. Например, чтобы скачать заглавную страницу сайта, вводите
$ curl http://www.linux.org/ -o linux.html
Параметров у нее довольно много, остановимся на самом интересном – -r/–range.
С его помощью можно указать только на часть файла. Что это дает? Находите несколько зеркал и загружаете файл частями с каждого зеркала, а затем собираете.
$ curl -r 0-350000000 http://releases.ubuntu.com/kubuntu/7.10/kubuntu-7.10-desktop-i386.iso -o kubuntu_7_10_1 &
$ curl -r 350000001– http://de.releases.ubuntu.com/kubuntu/7.10/kubuntu-7.10-desktop-i386.iso -o kubuntu_7_10_2 &
После того как обе части будут скачаны, соединяете их следующей командой:
cat kubuntu_7_10_* > kubuntu-7.10-desktop-i386.iso.
Проверяете контрольную сумму при помощи md5sum и, если все нормально, записываете дистрибутив на диск.
Aria (http://aria.rednoah.com/) в свое время была весьма удобной утилитой для скачивания файлов по протоколам FTP и HTTP, имеющей множество функций и настроек. Программе можно было указать заранее заготовленный список файлов, дальше она все делала сама. Параллельно проверялась целостность закачанных файлов, и при необходимости закачка повторялась. На сегодня интерфейс, основанный еще на первой версии библиотек GTK, вряд ли кого-то удовлетворит. Хотя, повозившись с установками шрифтов в файле ~/.aria/rc.aria, можно попробовать придать этому менеджеру нормальный внешний вид. На замену первой версии уже продвигается Aria2 (http://aria2.sourceforge.net/), в которой Татсухиро Тзукаява отказался от графического интерфейса, и вся работа в ней происходит исключительно в командной строке. Поясняется это малой нагрузкой на систему и большими возможностями командной строки. Возможно, в XXI веке такая позиция будет оценена немногими, но те, кто понимает все удобства такого подхода, пока только «за». Поддерживаются протоколы HTTP/HTTPS/FTP/BitTorrent и Metalink. Изначально поддерживается сегментирование файла, поэтому в одной строке можно задать несколько зеркал, указывающих на один файл. Утилита сама разобьет файл на части, скачает, соберет и проверит.
Например, так можно качать файл с помощью одного соединения:
$ aria2c http://server.com/file.zip
Так будут задействованы два подключения к одному серверу:
$ aria2c -s 2 http://server.com/file.zip
Теперь файл забирается с двух разных серверов:
$ aria2c http://server.com/file.ziphttp://example.com/file.zip
В одной команде можно смешивать разные протоколы, скачивая файл с серверов HTTP и FTP. С torrent aria2 работает аналогично. Просто при помощи параметра -T указываете файл .torrent:
$ aria2c -T test.torrent
Если указывается гиперссылка на файлы torrent или metalink, то дополнительных параметров прописывать не нужно, программа сама разберется, что необходимо делать.
Графические менеджеры закачек
По умолчанию в Kubuntu в качестве менеджера закачки с графическим интерфейсом предлагается Downloader for X (http://www.krasu.ru/soft/chuchelo) Максима Кошелева. У него, наверное, не самый удобный интерфейс GTK+ (рис. 4.12), но многие пользователи думают иначе.
Рис. 4.12. Менеджер закачек Downloader for X
Те, кто ранее пользовался Download Master, найдут много знакомого в D4X – все на своих местах и там, где ожидаешь найти нужный параметр. Предусмотрен запуск программы без графического интерфейса. D4X умеет закачивать файлы по протоколам FTP и HTTP, в том числе рекурсивно, ведет отдельный каталог для каждой закачки, работает через прокси-сервер. Среди полезных возможностей – встроенный планировщик для выполнения различных операций по расписанию, выборочный фильтр при закачке по HTTP, FTP-поиск для нахождения ближайшего сервера, ограничение скорости закачки и скачивание файла в несколько потоков для увеличения скорости. Реализована функция дистанционного управления программой, добавление файлов перетаскиванием, возможность ввода паролей для доступа к сайтам.
Утилита KGet (рис. 4.13) является полнофункциональным менеджером закачек, разработанным для среды KDE. После установки (в Ubuntu sudo apt-get install kget) интегрируется с Konqueror. Вначале KGet развивался как отдельный проект, но уже с версии 3.1 все разработки ведутся совместно с командой KDE.
Рис. 4.13. Утилита KGet
Настроек у KGet немного. Можно выбрать тип соединения, указать поведение при разрыве связи и ограничить количество соединений. Есть возможность разорвать соединение по расписанию или по окончании всех закачек, но команду на разрыв придется вводить вручную. Для разных типов файлов можно указать свой каталог для сохранения, для этого достаточно указать маску файла в меню Папки. Ссылка на ресурс, скопированная в буфер обмена, легко добавляется в программу: в панели задач в контекстном меню значка программы выполняется команда Вставить, затем – каталог и имя файла, куда сохранить файл. Вторым вариантом добавления файла на закачку является активация пункта Цель для перетаскивания. В этом случае на рабочем столе появится стрелка, на которой достаточно оставить ссылку с браузера, и задача решена. Созданный в KGet файл ссылок можно использовать и в wget, который закачает все файлы. После выключения компьютера все задачи сохраняются, и файлы можно впоследствии докачать. При отсутствии желания разбираться в настройках KGet весьма удобен.
Программа GNOME Transfer Manager (http://gtm.sourceforge.net/) построена на библиотеках Gtk+, хотя проект уже некоторое время практически не развивается. Работает по протоколам HTTP, HTTPS и FTP. Параметров можно указать немного: прокси-сервер с информацией для аутентификации и команду, которая будет выполнена по окончании закачки. Как и в KGet, можно указать шаблон, чтобы GTM автоматически сортировал файлы по их расширению или имени. Отдельно вынесена возможность, названная Numeric Download (Номерная загрузка), автоматизирующая закачку файлов, имена которых отличаются только номером. Программа также имеет удобную статистику скачивания.
Программа для копирования сайтов
Кроме многофункционального wget, в составе Linux есть и специализированные решения, предназначенные для создания локальных копий сайтов.
Крайне популярной является HTTrack Website Copier (http://www.httrack.com/). Скорее всего, эта программа уже есть в репозитарии вашего дистрибутива. В Ubuntu для установки следует выполнить команду sudo apt-get install webhttrack. После запуска из меню K загружается браузер, далее при помощи мастера в по шаговом режиме указывается, что нужно скачать и куда сохранить результат (рис. 4.14).
Рис. 4.14. Работа с HTTrack Website Copier
При копировании сайтов сохраняется оригинальная структура, поэтому при просмотре вся навигация по ресурсу ничем не отличается от работы в онлайн. В случае если сайт скачать за один раз не получилось, WebHTTrack умеет докачивать недостающее. Для уменьшения трафика можно использовать фильтры и отобрать только действительно необходимое.
Поиск в репозитарии любого дистрибутива даст еще не один десяток решений. В Linux также немало программ для работы в сетях P2P.