Поиск по этому блогу

Качаем в командной строке

Наигравшись GUI приложениями, все больше обращаю свое внимание на консольные программы и на возможности консоли в целом.
В предыдущих постах я рассказывал о некоторых консольных программах, которые я начал успешно использовать.
Теперь пришло время освоить закачку файлов из командной строки.
О том как и чем это сделать, прочитал в ЭТОМ ПОСТЕ

Вот фрагмент статьи, который касается консоли:

Самым популярным инструментом для закачки файлов и целых сайтов является утилита GNU Wget, которая, как правило, устанавливается по умолчанию. Поддерживает все популярные протоколы HTTP/HTTPS и FTP, умеет работать через HTTP прокси-сервер. Чем так удобен wget? Самое главное, что wget является не-интерактивной программой, поэтому натравив программу на сайт вообще можно о ней забыть. Повлиять на ее работу можно только убив процесс (например, нажатием Ctrl+D в той консоли в которой запущена программа). При использовании веб-браузера, пользователь должен постоянно отвечать на какие то вопросы и скачивание больших объемов информации может быть утомительно. Чтобы скопировать весь сайт целиком достаточно ввести команду:


И через некоторое время в текущем каталоге появится полная копия сайта.


Чтобы при обрыве соединения закачка возобновлялась добавляем параметр -с. Так можно скачать отдельный файл.


Параметр -r указывает на рекурсивный обход, а -l на его глубину. Обойдем рекурсивно все каталоги сайта, на глубину не более 10:

$ wget -r -l10 http://server.org/

Наиболее часто используемые параметры можно указать в конфигурационном файле .wgetrc, который создается в домашнем каталоге пользователя. Очень удобно скачивать файлы по расписанию. Например, создадим задачу для закачки файла в 02.00 (необходимо чтобы работал демон atd).

$ at 0200
warning: commands will be executed using /bin/sh
at> Нажимаем Ctrl+D

Wget удобная и популярная программа, но к сожалению развивающаяся очень вяло. 
Поэтому стоит обратить свое внимание на сURL (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. С его помощью можно указать только на часть файла. Что это нам дает? Находим несколько зеркал и загружаем файл частями с каждого зеркала, а затем собираем.


После того как обе части будут скачаны, соединяем их, командой cat kubuntu_7_10_* > kubuntu-7.10-desktop-i386.iso. Проверяем контрольную сумму при помощи md5sum и если все нормально записываем дистрибутив на диск.

Aria


Aria (aria.rednoah.com) В свое время это была весьма удобная утилита для скачивания файлов по протоколам FTP и HTTP имеющая множество функций и настроек. Программе можно было вскормить заготовленный список файлов, дальше она все делала сама. Кроме этого параллельно проверялась целостность закачанных файлов и при необходимости закачка повторялась. На сегодня интерфейс, основанный еще на первой версии библиотек GTK, уже вряд ли кого может удовлетворить. Хотя, повозившись с установками шрифтов в файле ~/.aria/rc.aria можно попробовать придать этому менеджеру вполне нормальный внешний вид. На замену первой версии уже продвигается Aria2 (aria2.sourceforge.net), в которой Татсухиро Тзукаява (Tatsuhiro Tsujikawa) отказался от графического интерфейса и вся работа происходит исключительно в командной строке. Поясняется это малой нагрузкой на систему и большими возможностями командной строки. Возможно, в 21 веке такая позиция будет оценена не многими, но та часть, которая понимает все удобства такого подхода только за. Поддерживаются протоколы HTTP/HTTPS/FTP/BitTorrent и Metalink. Изначально поддерживается сегментирование файла, поэтому в одной строке можно указать сразу несколько зеркал указывающих на один файл. Утилита сама разобьет файл на части, скачает, соберет и проверит.
Например, так можно качать файл с помощью одного соединения:


А так будет задействовано 2 подключения к одному серверу:


А теперь заберем файл с двух разных серверов:


Причем в одной команде можно смешивать разные протоколы, скачивая файл, с http и с ftp серверов. С torrent aria2 работает аналогично. Просто указываем .torrent файл с помощью параметра -T:

$ aria2c -T test.torrent

А такой командой можно просмотреть список файлов:

$ aria2c -T test.torrent -S

С metalink работаем аналогично:

aria2c -M test.metalink

Если указывается гипер-ссылка на torrent или metalink файлы, то дополнительных опций прописывать не нужно программа сама разберется, что нужно делать.


Вывод: я остановился на утилите aria2.
Зачем нагружать систему всяким там ГЮИ, когда так много можно сделать из консоли

Комментариев нет:

Отправить комментарий