Wget это бесплатный программный пакет, который может быть использован для извлечения файлов с использованием HTTP, HTTPS и FTP, которые считаются наиболее широко используемыми протоколами Интернета. Его название происходит от World Wide Web + wget, имеет много особенностей, чтобы получать большие файлы или зеркального отображения целых веб-сайтов или FTP легко, в том числе:
- Может возобновить прерванные загрузки, используя REST и RANGE;
- Можно использовать в имени символы и рекурсивное зеркало каталогов;
- NLS на основе файлов сообщений для разных языков;
- Необязательно преобразует абсолютные ссылки в загруженных документов, чтобы загруженные документы могут связать друг с другом на местном уровне;
- Работает на большинстве UNIX-подобных операционных системах, а также Microsoft Windows;
- Поддержка HTTP-прокси;
- Поддержка HTTP-куки;
- Поддерживает постоянные соединения HTTP;
- Автоматическая/фоновая операция;
- Использует локальные временные метки файлов, чтобы определить, нужны ли документы, которые будут повторно загружены, когда зеркальное отображение;
- GNU Wget распространяется под лицензией GNU General Public License.
Wget неинтерактивная, которая дает большую гибкость в использовании. Она может быть легко вызываться из сценариев, хрона, терминалов и т.д. Она может работать в фоновом режиме, даже если пользователь не вошел в систему.
В этой статье мы установим wget на Ubuntu 16,04 VPS и предоставим некоторые полезные примеры команды WGET. Пожалуйста, обратите внимание, что даже если она протестирована на Ubuntu 16.04, инструкции могут быть использованы на любой другой версии Ubuntu.
Войдите на свой сервер через SSH
# ssh root@server_ip
Вы можете проверить, есть ли у вас правильная версия Ubuntu установленная на сервере с помощью следующей команды:
# lsb_release -a
Вы должны получить этот результат:
Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial
Обновите систему
Убедитесь, что ваш сервер полностью в актуальном состоянии с помощью:
# apt update && apt upgrade
Установка и использование WGET
После того, как обновления выполняться, установите wget с помощью:
# apt install wget
Теперь мы можем начать использовать wget.
Теперь загружаем последнюю версию WordPress с помощью wget:
# wget https://wordpress.org/latest.zip
Вывод из этой команды будет включать в себя строку состояния загрузки, которая покажет вам процесс загрузки и какова скорость загрузки.
Wget по умолчанию выбирает имя файла, в соответствии с последним словом после косой черты. Иногда это может быть проблемой, так как некоторые загрузки будут иметь неуклюжее имя. Чтобы избежать этого, вы можете сохранить файл в значение по вашему выбору. Давайте изменим имя WordPress в команде загрузки:
# wget -o wordpress.zip https://wordpress.org/latest.zip
Теперь загруженный файл будет называться wordpress.zip и не latest.zip как использованное по умолчанию.
Вы даже можете указать скорость загрузки. Например:
# wget --limit-rate=400k https://wordpress.org/latest.zip
У меня были случаи, когда я скачал большие файлы и из-за временно утраченной связи, загрузка была прервана. Но не бойтесь, потому что флаг -c. Использование -c в команде позволит продолжить загрузку от того, где он остановился. Пример:
# wget -c http://sampledomain.com/file.zip
Именно поэтому рекомендуется поставить загрузку в фоновом режиме, когда файл большой. Это может быть сделано с помощью -b:
# wget -b http://sampledomain.com/file.zip
Иногда на серверах где загружаются файлы, могут быть заняты и медленно работают. Таким образом, использование wget в его наиболее естественной форме не рекомендуется. Вы можете настроить количество повторных попыток для wget, чтобы загрузить файл.
# wget --tries=15 https://wordpress.org/latest.zip
Вы также можете скачать несколько файлов с помощью одной команды. Во-первых, давайте откроем файл. Назовите это download.txt:
# touch download.txt
Теперь, используя текстовый редактор по вашему выбору введите URL загрузки в файле. Мы используем nano:
# nano download.txt
Сохраним и закроем файл. Давайте посмотрим, что мы хотим скачать:
# cat download.txt https://wordpress.org/latest.zip https://downloads.joomla.org/us/cms/joomla3/3-6-5/joomla_3-6-5-stable-full_package-zip https://ftp.drupal.org/files/projects/drupal-8.2.4.tar.gz
Теперь используйте следующую команду, чтобы загрузить все файлы из файла download.txt:
# wget -i download.txt
Очень полезно, не так ли?
Вы можете также узнать дату, когда веб-страницы были изменены в прошлом:
# wget ‐‐server-response ‐‐spider http://google.com
Мы уже упоминали во введении этой статьи, что wget можно загрузить рекурсивно. Таким образом, вы можете загрузить весь каталог. Пример:
# wget -r sampledomain.com/directory
Однажды пришлось перенести сайт Magento, но только имелся FTP доступ к учетной записи и, миграция через FTP может быть медленным. Так что пришлось использовать wget для загрузки данных. Вам, наверное, интересно, как? Ну, это то , что надо сделать:
- Создать файл архива, содержащий файлы/катали Magento;
- Перенести этот файл в корневой каталог веб-документа;
- Используемые wget для загрузки файла.
Думаю, что вы уже знаете, как я скачал файл, что здесь идет, команда, которая спасла меня от медленной миграции:
# wget http://magento_domain.com/archivedmagento.zip
Поскольку данные Magento могут быть большими, вы можете использовать некоторые из представленных выше опций (флагов) поставить wget в фоновом режиме или продолжить от того, где загрузка была прервана.
В то время как мы говорим о FTP, вы можете также использовать wget для выполнения FTP загрузки:
# wget ftp-URL
Или скачать используя имя пользователя и пароль FTP:
# wget --ftp-user=USERNAME --ftp-password=FTP_PASSWORD URL
Как вы можете видеть, wget является очень полезным инструментом для повседневного администрирования Linux. Вы можете найти более подробную информацию о wget и варианты wget с страницы man.
man wget WGET(1) GNU Wget WGET(1) NAME Wget - The non-interactive network downloader. SYNOPSIS wget [option]... [URL]... DESCRIPTION GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies. Wget is non-interactive, meaning that it can work in the background, while the user is not logged on. This allows you to start a retrieval and disconnect from the system, letting Wget finish the work. By contrast, most of the Web browsers require constant user's presence, which can be a great hindrance when transferring a lot of data. Wget can follow links in HTML, XHTML, and CSS pages, to create local versions of remote web sites, fully recreating the directory structure of the original site. This is sometimes referred to as "recursive downloading." While doing that, Wget respects the Robot Exclusion Standard (/robots.txt). Wget can be instructed to convert the links in downloaded files to point at the local files, for offline viewing. Wget has been designed for robustness over slow or unstable network connections; if a download fails due to a network problem, it will keep retrying until the whole file has been retrieved. If the server supports regetting, it will instruct the server to continue the download from where it left off. OPTIONS Option Syntax Since Wget uses GNU getopt to process command-line arguments, every option has a long form along with the short one. Long options are more convenient to remember, but take time to type. You may freely mix different option styles, or specify options after the command-line arguments. Thus you may write: wget -r --tries=10 http://fly.srk.fer.hr/ -o log The space between the option accepting an argument and the argument may be omitted. Instead of -o log you can write -olog. You may put several options that do not require arguments together, like: wget -drc This is completely equivalent to: wget -d -r -c
Будем надеяться, что теперь у вас есть более четкое представление о том, что может wget сделать для вас.