Закачка с командной строки

Закачка с командной строки

Самым популярным инструментом для закачки файлов и целых сайтов является утилита 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, то дополнительных параметров прописывать не нужно, программа сама разберется, что необходимо делать.

Данный текст является ознакомительным фрагментом.