и многие другие.
Менеджеры закачек
До обзора специализированных решений хотелось бы напомнить, что такие браузеры, как 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.zip http://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 немного. Можно выбрать тип соединения, указать поведение при разрыве связи и ограничить количество соединений. Есть возможность разорвать соединение по расписанию или по окончании всех закачек, но команду на разрыв придется вводить вручную. Для разных типов файлов можно