Как использовать команду Wget
В этом руководстве расскажем вам о команде ОС Linux wget. Покажем вам 12 полезных примеров её использования. К концу руководства вы будете достаточно знать об этой команде и сможете легко качать файлы из всемирной сети интернет.
Прокачайте ваш проект, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.
Оглавление
Что такое команда Wget?
Wget – это инструмент от GNU Project. Его можно использовать для скачивания контента и файлов с различных веб-серверов. Название состоит из комбинации World Wide Web и get. Инструмент поддерживает скачивание по FTP, SFTP, HTTP и HTTPS.
Wget создан на языке программирования C и используется на любой Unix-системе. Его также можно внедрить на Mac OS X, Microsoft Windows, AmigaOS и других популярных платформах.
Как установить Wget?
Для демонстрации работы команды wget мы будем использовать ОС Ubuntu 16.04. Но синтаксис будет одинаков и для других дистрибутивов Linux.
Прежде, зайдите на свой сервер по SSH. Выполните команду для установки wget в вашей системе:
apt-get install wget
Как только закончится установка, командой можно пользоваться. Конечно же знание базовых команд SSH облегчит вам задачу.
Примеры использования команды
Для ознакомления мы предлагаем 12 примеров использования команды wget, которые пригодятся вам для ежедневных задач. Помните также, что вы можете использовать эти команды в виде скрипта и задач cron!
Как командой Wget скачать один файл
Наиболее распространенным примером использования команды является скачивание одного файла для сохранения его в вашей текущем рабочем каталоге. Например, вам нужно скачать последнюю версию WordPress, для этого:
wget https://wordpress.org/latest.zip
После запуска команды вы увидите:
--2018-02-23 12:53:10-- https://wordpress.org/latest.zip Resolving wordpress.org (wordpress.org)... 198.143.164.252 Connecting to wordpress.org (wordpress.org)|198.143.164.252|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 9332728 (8,9M) [application/zip] Saving to: 'latest.zip' latest.zip 100%[===================>] 8,90M 6,88MB/s in 1,3s 2018-02-23 12:53:14 (6,88 MB/s) - 'latest.zip' saved [9332728/9332728]
В этом примере файл под названием latest.zip будет скачан в текущий рабочий каталог. Вам также предоставляется дополнительная информация, такая как прогресс скачивания, скорость, размер, время и дата.
Как командой Wget скачать несколько файлов
Мы можем взять предыдущий пример и скачать несколько файлов за один раз. Для этого нам потребуется создать текстовый документ и поместить туда URL для скачивания. В этом примере мы запросим последние версии WordPress, Joomla и Drupal. Введите следующее:
nano example.txt
Это создаст файл example.txt и откроет интерфейс текстового редактора. Вставьте этот текст туда:
https://wordpress.org/latest.zip https://downloads.joomla.org/cms/joomla3/3-8-5/Joomla_3-8-5-Stable-Full_Package.zip https://ftp.drupal.org/files/projects/drupal-8.4.5.zip
Как только сделаете это, вы можете использовать -i для получения всех файлов, ссылки на которые есть в текстовом файле example:
wget -i example.txt
Дождитесь завершения процесса и у вас будут установочные файлы трёх наиболее популярных систем управления контентом.
Как командой Wget скачать файлы под другими названиями
В этом примере мы сохраним файл, используя другое имя при помощи опции -O:
wget -O wordpress-install.zip https://wordpress.org/latest.zip
В этом случае скачанный ресурс будет сохранён под названием wordpress-install.zip вместо оригинального имени.
Как командой Wget скачать файл и сохранить его в специальный каталог
Вы можете скачать файл и поместить его в другом каталоге, используя опцию -P:
wget -P documents/archives/ https://wordpress.org/latest.zip
Файл, который вы хотите получить появится в каталоге documents/archives/.
Как в команде Wget ограничить скорость скачивания
Вы можете ещё и устанавливать, скорость скачивания. Это полезно, когда вы запрашиваете большие файлы и предотвращает от полного занимания канала. Данный пример применения wget устанавливает лимит в 500k:
wget --limit-rate=500k https://wordpress.org/latest.zip
Как в команде установить количество повторных попыток
Проблемы подключения к интернету могут привести к прерыванию загрузки. Чтобы этого избежать мы можем повысить количество повторных попыток с опцией -tries:
wget -tries=100 https://wordpress.org/latest.zip
Как командой Wget скачивать в фоновом режиме
Для файлов особо большого размера может оказаться полезной опция -b. Она установит скачивание в фоновом режиме.
wget -b http://example.com/beefy-file.tar.gz
В рабочем каталоге появится wget-log, который может быть использован для проверки прогресса и статуса вашего скачивания. Эта команда тоже будет полезной:
tail -f wget-log
Как командой Wget скачивать по FTP
Команда также применима для работы по FTP. Вам всего лишь нужно указать имя пользователя и пароль, как в примере ниже:
wget --ftp-user=YOUR_USERNAME --ftp-password=YOUR_PASSWORD ftp://example.com/something.tar
Как продолжить прерванное скачивание
Ваше скачивание прервётся, если потеряется связь с интернетом или произойдёт отключение энергоснабжения. Это достаточно распространённые случаи, когда вы скачиваете что-то большое по размеру. Вместо того, чтобы заново начинать, можно продолжить процесс скачивания используя ключ -c:
wget -c https://example/very-big-file.zip
Если вы запустите процесс без ключа -c, к новому файлу в конце будет добавлено .1, так как файл с таким названием уже существует.
Как командой Wget скачать сайт
Команду можно использовать для скачивания всего сайта. Это позволит просматривать сайт локально без подключения к интернету. Вот пример:
wget --mirror --convert-links --page-requisites --no-parent -P documents/websites/ https://some-website.com
Давайте разберём пример подробнее:
–mirror | Этот ключ делает ваше скачивание рекурсивным. |
–convert-links | Все ссылки будут преобразованы для офлайн использования. |
–page-requisites | Этим мы включим для скачивания все необходимые файлы, такие как CSS, JS и картинки. |
–no-parent | Это гарантирует, что каталоги по иерархии выше не будут загружены. |
-P documents/websites/ | Эта опция гарантирует, что весь контент будет направлен в указанный каталог. |
Как только процесс закончится, вы сможете открыть скачанный сайт локально и найти все файлы в каталоге documents/websites/.
Как использовать команду Wget для поиска битых ссылок
Давайте попробуем кое-что более сложное. Мы может применять команду для нахождения битых URL-ссылок, которые выдают ошибку 404 на конкретном сайте. Начнём с выполнения следующего:
wget -o wget-log -r -l 5 --spider http://example.com
-o | Собирает вывод в файл для использования позже. |
-l | Задаёт уровень рекурсии. |
-r | Делает скачивание рекурсивным. |
–spider | Устанавливает команду в режим работы “паука”. |
Теперь мы можем изучить файл wget-log для поиска списка битых ссылок. Вот команда для этого:
grep -B 2 '404' wget-log | grep "http" | cut -d " " -f 4 | sort -u
Как командой Wget скачать пронумерованный файлы
Если у вас есть список файлов или изображений пронумерованные в определённом порядке, вы можете легко скачать их все, используя следующий синтаксис:
wget http://example.com/images/{1..50}.jpg
Заключение
Поздравляем! Теперь, после проработки этого руководства, вы знакомы с различными вариантами использования команды. Вы можете пользоваться ею для получения одного или нескольких файлов. К тому же, вы ознакомились с некоторыми более сложными вариантами использования этой команды, такими как: скачивание сайта целиком или нахождения битых URL-ссылок. Для более подробной информации обратитесь к официальной документации(англ.).
Может быть у вас есть какие-то советы или уловки, которыми вы бы хотели поделиться? Пишите их в комментариях ниже!