Самое прекрасное — это когда нужна поддержка сайта, а ты сидишь с телефоном
в руке и ЗНАЕШЬ, чей номер набрать! т. +7 831 4637611 моб. +7 910 3820622Айтишник РУ Нижний Новгород, Симферопольская, 21
A+ A A-

Работаем с wget в Debian

Одна из самых частых задач при работе с любой операционной системой – это скачивание файлов. Существует несколько способов получения файлов с удаленного компьютера. В этой статье я расскажу, как решить задачу скачивания файлов в Debian с помощью wget - программы, работающей из командной строки. По большому счету неважно работаете ли вы в Debian или нет т. к. wget входит в состав практически любого дистрибутива Linux. Wget поддерживает работу по протоколам: FTP, HTTP, HTTPS, может работать через HTTP прокси-сервер и поддерживает докачку файлов. Это не все, что может программа, с некоторыми возможностями мы познакомимся ниже, в примерах. Будем двигаться от простого к сложному.

Синтаксис команды следующий:
wget параметры... URL...
Просто скачиваем файл по протоколу HTTP или FTP. По умолчанию файл сохраняется в текущий каталог пользователя
$ wget http://debian.nsu.ru/debian-cd/current/amd64/bt-cd/debian-7.3.0-amd64-CD-1.iso.torrent
$ wget ftp://debian.nsu.ru/debian-cd/current/amd64/bt-cd/debian-7.3.0-amd64-CD-1.iso.torrent
Скачиваем файл в фоновом режиме, например, если файл большой или некогда следить за процессом загрузки. Для этого: или в конце строки через пробел добавляем амперсанд, или используем параметр -b
$ wget http://debian.nsu.ru/debian-cd/current/amd64/iso-dvd/debian-7.3.0-amd64-DVD-1.iso &
$ wget -b http://debian.nsu.ru/debian-cd/current/amd64/iso-dvd/debian-7.3.0-amd64-DVD-1.iso
Изменим каталог назначения с текущего на тот, который нужен нам. Используем параметр -P. Путь /path/for/save - это путь к каталогу назначения.
$ wget -P /path/for/save ftp://debian.nsu.ru/debian-cd/current/amd64/iso-cd/debian-7.3.0-amd64-netinst.iso
Скачиваем несколько файлов. Для этого пишем их URL-адреса через пробел.
$ wget ftp://ftp.gimp.org/pub/gimp/fonts/freefonts-0.10.tar.gz ftp://ftp.gimp.org/pub/gimp/fonts/sharefonts-0.10.tar.gz
Таким способом можно скачать пару-тройку файлов, но при большем их количестве это неудобно. Лучше организовать скачивание файлов списком. Для этого создаем файл list_downloads и вносим в него нужные URL-адреса. Каждый адрес вносим с новой строки. Ниже приведен пример содержания такого файла.
ftp://ftp.gimp.org/pub/gimp/contrib/gimp-nevit-airplanebrush01-20010210-1.gih.gz
http://debian.nsu.ru/debian-cd/current/amd64/bt-dvd/debian-update-7.3.0-amd64-DVD-1.iso.torrent
ftp://ftp.isc.org/lynx/lynx2.8.7/lynx2-8-7-tar.bz2
ftp://ftp.linux.org.uk/pub/linux/libc/libc-5.4.7.tar.gz
Запускаем скачивание списка файлов, используя параметр -i.
$ wget -i list_downloads
Если скачивание файла было прервано, то его можно докачать. Используем параметр -c.
$ wget -c http://debian.nsu.ru/debian-cd/current/amd64/iso-dvd/debian-7.3.0-amd64-DVD-1.iso
Все вышеприведенные примеры справедливы для открытых серверов. Если нужно скачать файл с сервера, требующего учётные данные, то делаем это следующим образом. Для скачивания по протоколу HTTP выбираем одну из двух видов записи. Здесь youlogin и youpassword соответственно логин и пароль.
$ wget --http-user=youlogin --http-password=youpassword http://ftp.yousite/foo_file.tar.gz
$ wget http://youlogin:youpassword@http://ftp.yousite/foo_file.tar.gz
То же самое для протокола FTP
$ wget --user= youlogin --youpassword=password ftp://ftp.yousite/foo_file.tar.gz
$ wget ftp://youlogin:Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра./foo_file.tar.gz
Скачивание файлов только определенного формата. В параметре --accept через запятую перечисляются разрешенные для скачивания форматы. В примере так же используется параметр --reject, в котором тоже через запятую перечисляются уже запрещенные для скачивания форматы файлов
$ wget --accept=doc,pdf,djvu --reject=html,htm,php,zip -rl1 ftp://ftp.tomsknet.ru/pub/docs/books/
При скачивании файлов иногда требуется ограничить скорость загрузки. Для этого в параметре limit-rate указываем ограничение в байтах в секунду. Для удобства можно указывать приставки: k – килобайт в секунду, m – мегабайт в секунду.
$ wget --limit-rate=60k -c http://debian.nsu.ru/debian-cd/current/amd64/iso-dvd/debian-7.3.0-amd64-DVD-1.iso
$ wget --limit-rate=1m -c http://debian.nsu.ru/debian-cd/current/amd64/iso-dvd/debian-7.3.0-amd64-DVD-1.iso

Запустить скачивание в назначенное время можно, если wget использовать совместно с командой at.
$ echo 'wget http://debian.nsu.ru/debian-cd/current/amd64/bt-dvd/debian-7.3.0-amd64-DVD-3.iso.torrent' | at 17:55
Если соединение с интернет не стабильное, то в параметре программы --tries можно указать количество попыток подключения, которые будут сделаны для скачивания. В этом примере так же используется параметр -r для выполнения действия рекурсивно
$ wget -r --tries=11 ftp://ftp.gimp.org/pub/beast/v0.7/
В этом деле можно пойти дальше. Следующая команда будет одиннадцать раз возобнавлять закачку при разрыве соединения, даже в том случае, если от сервера будет получен ответ "В соединении отказано".
$ wget -t 11 --retry-connrefused http://debian.nsu.ru/debian-cd/current/amd64/iso-dvd/debian-7.3.0-amd64-DVD-1.iso
На самом деле параметр -t это коротая запись параметра --tries. Отметим, что значение параметра в короткой записи пишется через пробел, а в длинной записи после знака =. Параметр --retry-connrefused указывает на то, что действие следует повторять даже, если отказано в соединении.
С помощью wget можно проверить доступность ссылок, определить битые они или нет. Для этого создадим файл check_list, в который внесем ссылки для проверки. Каждая ссылка вносится с новой строки. Ниже приведен пример содержания такого файла.
http://opennet.ru
http://www.debian.org/distrib/packages
http://joomla.org/qq.html
После этого даём следующую команду. Параметр --spider переключает wget в режим работы "паука", т. е. проверяется наличие файлов, но они не загружаются.
$ wget -v --spider -i check_list
Для файла в формате HTML (в примере bookmarks.html) команда будет выглядеть следующим образом
$ wget -v --spider --force-html -i bookmarks.html

Среди прочих параметров wget существует один очень полезный -N. С его помощью можно сравнить локальный и такой же удаленный файл на сервере. И если удаленный файл был изменен, то он будет скачан. Сравнение производится по времени изменения файла. Ниже демонстрируется такая команда. Подразумевается, что локальный файл file.txt расположен в директории по умолчанию (домашний каталог пользователя).

wget -N http://server/file.txt 

Следующие примеры более сложные, но они демонстрируют всю мощь wget.
Скачиваем страницу с глубиной вложенности 7, записывая протокол загрузки в файл log_wget.
$ wget -r -l 7 http://yousite/ -o log_wget
Для того, чтобы во всех скачанных страницах ссылки преобразовывались в относительные для локального просмотра, используем параметр -k:
$ wget -r -l 7 -k http://yousite/
Скачиваем содержимое директории http://yousite/vasja/jedy/ и всех её поддиректорий, при этом, не поднимаясь по иерархии каталогов выше указанной:
$ wget -r --no-parent http://yousite/vasja/jedy/
Копируем сайт целиком для офф-лайн просмотра:
$ wget -r -l 5 -k -p -E http://yousite/
К уже известным параметрам добавились: -p, который отвечает за скачивание всех изображений и CSS, и -E, который добавляет к скачанным файлам сценариев расширение html.
Синхронизируем сайт с его локальной копией. Очень полезно для организации резервного копирования.
$ wget --mirror http://yousite/

Программа wget поддерживает символы подстановки. Ниже приведен пример использования.
$ wget http://yousite/index.php?option=com_content&catid={1..100}
$ wget http://yousite/templates/stu25/main.{css,js}
На этом статья заканчивается, но не возможности программы wget. И в заключении ещё пара полезных команд:
$ wget --help
$ man wget

Не забывайте, что у нас вы можете не только купить готовый сайт, но и подобрать подходящий тариф поддержки сайта, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! У нас же вы можете заказать продвижение сайта в поисковых системах.Айтишник РУ

 

Об авторе:

ZolkinМеня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

 

Ещё статьи о Debian

    • Установка Debian

      Установка DebianЭта статья об установке операционной системы Debian GNU/Linux. Тема статьи достаточно обширна и это скорее тема для книги, нежели для статьи. Мне бы хотелось сделать статью «на вырост», т. е. со временем дополняя её ссылками на другие...

    • Как обновить Debian 5 Lenny до Debian 6 (Squeeze)

      Как обновить Debian 5 Lenny до Debian 6 (Squeeze)Обновление системы Debian 5 Lenny до Debian 6 Squeeze проводится точно так же, как обновление Debian 4 Ethc до Debian 5 Lenny. На всякий случай продублирую статью изменив в ней названия дистрибутивов. На момент написания этой статьи произошла смена стабильного дистрибутива...

    • Установка Debian с usb накопителя

      Установка Debian с usb накопителяЭта статья является частью руководства «Установка Debian на сервер» и рассказывает о загрузке программы установки с usb накопителей. Под usb накопителями понимаются usb флеш карты, съёмные usb диски и кард ридеры с usb интерфейсом. Для написания статьи использовались две самые простые usb flash карты: SMI и Transcend объёмом 2...

    • Настройка FTP сервера в Debian 5 (Lenny)

      Настройка FTP сервера в Debian 5 (Lenny)В этой статье я опишу настройку FTP сервера на базе Debian 5 (Lenny). Будем использовать vsftpd. VSFTPD (Very Secure FTP Daemon) — как следует из названия, очень защищённый демон FTP, с хорошей производительностью, поддерживаются: IPv6,...

    • Система помощи в Debian Linux

      Система помощи в Debian LinuxИзучать операционную систему и применять полученные знания на практике, не заглядывая в документацию, невозможно. Операционные системы Linux/Unix отлично документированы. Можно найти ответ на любой вопрос; нужно только знать где искать:...

    • Настройка SSH в Debian

      Настройка SSH в DebianДовольно часто, администрирование сервера на базе Linux происходит посредством удалённого доступа. А основным способом удалённого администрирования является администрирование с помощью SSH. Об этом и пойдёт речь в этой статье. Данная...