- Как скачивать файлы в Debian с помощью curl и wget в командной строке
- Метод №1 Загрузка файлов с помощью Curl
- Установка Curl
- Общий синтаксис CURL
- Загрузка и сохранение файла с использованием имени исходного файла
- Загрузка и сохранение файла с другим именем
- Скачивание нескольких файлов одновременно
- Загрузка файлов с FTP-сервера
- Загрузка файлов с помощью Wget
- Установка Wget
- Общий синтаксис Wget
- Загрузка и сохранение файла с использованием имени исходного файла
- Загрузка и сохранение файла с другим именем
- Загрузка файлов через FTP
- Загрузка нескольких файлов
- Приостановка и возобновление загрузки
- Рекурсивная загрузка файлов
- Похожие записи:
- Использование команды Wget на простых примерах
- Синтаксис команды wget
- Указание нового имени файла
- Скачивание в фоновом режиме
- Скачивание нескольких файлов (по списку)
- Скачивание файлов по ссылкам в HTML-документе
- Ограничение скорости скачивания
- Продолжение загрузки
- Проверка существования файла
- Как скачать сайт
- Скачивание с FTP (указание логина и пароля)
- Скачивание с HTTP с указанием логина и пароля
- Указание количества попыток
- Ожидание между загрузкой файлов
- Указание нескольких опций
- Заключение
Как скачивать файлы в Debian с помощью curl и wget в командной строке
Работа в командной строке Linux дает вам больше гибкости и контроля по сравнению с графическим интерфейсом. Командная строка имеет множество применений и широко используется в администрировании серверов. Вы можете автоматизировать задачу с помощью командной строки, а также она использует меньше ресурсов, чем графический интерфейс. Загрузка файла с помощью командной строки также проще и быстрее, так как для этого требуется всего одна команда, по сравнению с графическим интерфейсом, который в основном требует длительной процедуры.
В этой статье мы расскажем, как загрузить файл из командной строки Linux с помощью двух различных утилит. Обе утилиты являются бесплатными и предназначены для неинтерактивной загрузки файлов из Интернета. Эти утилиты работают в фоновом режиме, даже когда вы не вошли в систему.
Метод №1 Загрузка файлов с помощью Curl
Curl — это утилита командной строки, которая используется для передачи файлов на сервер и с сервера. Мы можем использовать ее для загрузки файлов из Интернета. Она разработана таким образом, что вы можете запускать ее без участия пользователя. Она поддерживает различные протоколы, включая HTTP, HTTPS, TELNET, SCP, FTP и т.д. По умолчанию он не установлен в ОС Debian. Поэтому его необходимо сначала установить. Для этого выполните следующие шаги:
Установка Curl
Запустите приложение Терминал в Debian. Для этого перейдите на вкладку Деятельность в левом верхнем углу рабочего стола. Затем в строке поиска введите terminal. Когда появится значок Терминала, нажмите на него, чтобы запустить его.
В Терминале введите следующую команду для перехода в учётную запись суперпользователя.
Когда появится запрос на ввод пароля, введите пароль суперпользователя.
Затем выполните следующую команду в Терминале для установки утилиты Curl.
После завершения установки мы можем использовать Curl для загрузки файлов.
Общий синтаксис CURL
Чтобы загрузить файлы с помощью Curl, используйте следующий синтаксис в Терминале:
Используя параметр [options], вы можете указать различные функции, например, сохранить загрузку под определенным именем, возобновить загрузку, указать скорость передачи и многое другое.
Используя параметр [URL], вы можете указать URL удаленного сервера.
Загрузка и сохранение файла с использованием имени исходного файла
Чтобы загрузить и сохранить файл с тем же именем, что и имя исходного файла, используйте следующий синтаксис:
curl -O https://1275.ru/wp-content/uploads/sites/3/2022/09/metador.pdf
Это сохранит скачанный файл как metador.pdf.
Загрузка и сохранение файла с использованием имени исходного файла с помощью curl
Также можно указать «-remote-name» вместо -O, чтобы сохранить файл как имя удаленного файла.
Загрузка и сохранение файла с другим именем
Чтобы загрузить и сохранить файл с именем, отличным от имени исходного файла, используйте следующий синтаксис:
В параметре [имя файла] укажите новое имя для загруженного файла.
curl https://1275.ru/wp-content/uploads/sites/3/2022/09/metador.pdf -o metador_1275.pdf
Это сохранит загруженный файл как metador_1275.pdf.
Скачивание нескольких файлов одновременно
Вместо того чтобы загружать несколько файлов по одному, вы можете загрузить их все одновременно, выполнив одну команду. Для одновременной загрузки нескольких файлов используйте команду -O, за которой следует URL-адрес файла, который вы хотите загрузить.
Для этого используйте следующий синтаксис:
curl -O https://1275.ru/wp-content/uploads/sites/3/2022/09/metador.pdf -O https://1275.ru/wp-content/uploads/sites/3/2022/08/redline-stealer.pdf
Приведенная выше команда загрузит оба файла.
Существует альтернативный способ сделать это. Укажите список URL-адресов в файле, затем используйте команду Curl вместе с xargs в следующем синтаксисе:
Примером этого может быть:
Наш файл files.txt содержит три URL:
Приведенная выше команда Curl загрузит все URL, указанные в файле files.txt.
Загрузка файлов с FTP-сервера
Мы также можем загрузить файлы с FTP-сервера с помощью утилиты Curl. Для этого выполните команду в Terminal, используя следующий синтаксис:
curl -u ftp_user:ftp_pass -O ftp://ftp_url/file_name.zip
Параметры ftp_user и ftp_pass используются для указания учетных данных для входа на FTP. Однако их можно пропустить в случае анонимного FTP-соединения.
Загрузка файлов с помощью Wget
Подобно Curl, существует еще одна утилита командной строки Wget, которую можно использовать для загрузки файлов и контента из Интернета. Wget — это сочетание слов World Wide Web и get. Она поддерживает такие протоколы, как FTP, SFTP, HTTP и HTTPS. Кроме того, он поддерживает рекурсивную загрузку, что очень полезно, если вы хотите загрузить целый сайт для просмотра в автономном режиме или для создания резервной копии статического сайта.
Установка Wget
Если wget еще не установлен в вашей системе, вы можете установить его, выполнив следующие действия:
Запустите приложение Терминал тем же способом, который обсуждался ранее в этой статье. В терминале введите следующую команду для перехода под учетной записью суперпользователя.
Когда появится запрос на ввод пароля, введите пароль суперпользователя.
Затем выполните следующую команду в Терминале для установки утилиты Wget.
Общий синтаксис Wget
Чтобы загрузить файл с помощью Wget, используйте следующий синтаксис:
Загрузка и сохранение файла с использованием имени исходного файла
Использование приведенного выше синтаксиса для загрузки файла без какого-либо аргумента сохранит файл с тем же именем, что и исходный файл. Примером может служить загрузка файла metador.pdf.
wget https://1275.ru/wp-content/uploads/sites/3/2022/09/metador.pdf
Это сохранит загрузку как metador.pdf.
Загрузка и сохранение файла с другим именем
Чтобы загрузить и сохранить файл с именем, отличным от имени исходного файла, используйте следующий синтаксис:
wget -O 1275_metador https://1275.ru/wp-content/uploads/sites/3/2022/09/metador.pdf
Это сохранит загрузку как 1275_metador.
Загрузка файлов через FTP
Чтобы загрузить файлы с FTP-серверов, аутентифицированных пользователем, используйте следующий синтаксис:
wget -u [ftp_user]:[ftp_pass] -O [ftp_URL]
Параметры ftp_user и ftp_pass используются для указания учетной записи FTP. Однако в случае анонимного FTP-соединения их можно пропустить.
Загрузка нескольких файлов
Чтобы загрузить несколько файлов с помощью Wget, создайте текстовый файл со списком URL файлов, а затем используйте следующий синтаксис для загрузки всех файлов одновременно.
Например, мы создали текстовый файл files.txt, который содержит два URL, как показано на рисунке ниже.
Затем мы выполнили следующую команду:
Выполнение приведенной выше команды автоматически загрузит оба URL, содержащихся в файле files.txt.
Приостановка и возобновление загрузки
Чтобы возобновить приостановленную загрузку, перейдите в каталог, в который вы ранее загрузили файл, а затем используйте следующий синтаксис для возобновления загрузки.
Примером может служить возобновление ранее приостановленного файла metador.pdf путем выполнения следующей команды.
wget -c https://1275.ru/wp-content/uploads/sites/3/2022/09/metador.pdf
Рекурсивная загрузка файлов
Wget поддерживает рекурсивную загрузку файлов, что является его основным отличием от Curl. Функция рекурсивной загрузки позволяет скачивать все, что находится в указанном каталоге.
Чтобы рекурсивно загрузить веб-сайт или FTP-сайт, используйте следующий синтаксис:
В качестве примера можно привести загрузку следующего сайта целиком.
Итак, в этой статье мы познакомились с двумя различными неинтерактивными утилитами командной строки, которые позволяют загружать файлы непосредственно из командной строки. Обе утилиты очень полезны и служат для одинаковых целей. Я надеюсь, что они будут полезны, когда вам понадобится скачать файл из Интернета.
Похожие записи:
Использование команды Wget на простых примерах
Утилита wget (или команда wget) предназначена для скачивания файлов, веб страниц и других ресурсов из интернета. Рассмотрим основные возможности команды wget на примерах.
Синтаксис команды wget
Команда wget имеет следующий синтаксис:
В простейшем случае, чтобы скачать файл, достаточно указать URL-адрес:
wget https://domain.ru/filename.tar.bz2
Выполнив данную команду, вы скачаете файл filename.tar.bz2 , расположенный по адресу https://domain.ru/filename.tar.bz2, который будет сохранен в текущую директорию.
Указание нового имени файла
Используя опцию -O можно задать название результирующего файла.
Например, если файл, который вы скачиваете, имеет имя filename-1.3.0-release-branch.tar , вы можете сохранить его с именем filename.tar :
wget -O filename.tar ftp://some.host.com/filename-1.3.0-release-branch.tar
Скачивание в фоновом режиме
Чтобы скачать файл в фоновом режиме используется опция -b :
wget -b http://host.com/file.zip
Скачивание нескольких файлов (по списку)
Команде wget можно передать текстовый файл, в котором на каждой строчке записаны URL-адреса, которые требуется скачать. Для этого используется опция -i :
Скачивание файлов по ссылкам в HTML-документе
Команда wget поддерживает скачивание файлов по ссылкам в HTML-документе. То есть она автоматически находит все ссылки в HTML-файле и скачивает их:
wget --force-html -i file.html
Ограничение скорости скачивания
Чтобы ограничить скорость скачивания используется опция —limit-rate .
wget --limit-rate=500k http://some-site.com/filename.tar.gz
В качестве значения —limit-rate можно указывать скорость загрузки в следующих форматах:
- байтах в секунду — например: 300
- килобайтах в секунду — например: 10k
- мегабайтах в секунду- например: 10.5m
Продолжение загрузки
Чтобы продолжить прервавшуюся загрузку используется опция -c :
wget -c http://some-site.com/file.tar
Проверка существования файла
Перед тем, как скачать файл, можно проверить существует ли он. Например, это может потребоваться, когда вы скачиваете большое количество файлов и хотите заранее знать, все ли из них доступны. Для проверки доступности файлов используется опция —spider .
Например, чтобы проверить доступность файлов в списке можно использовать команду:
wget --spider -i list-of-files.txt
Также можно проверить доступен ли конкретный файл:
wget --spider http://site.com/filename.zip
При использовании опции —spider файлы не скачиваются, а только выполняется проверка.
Как скачать сайт
Инструкцию по скачиванию сайтов с помощью wget смотрите в отдельной статье: Скачиваем сайты целиком — утилита wget
Скачивание с FTP (указание логина и пароля)
Чтобы скачать файл с FTP-сервера, для которого требуется указание логина и пароля, используются опции —ftp-user и —ftp-password :
wget --ftp-user=ИМЯ_ПОЛЬЗОВАТЕЛЯ --ftp-password=ПАРОЛЬ ftp://ftp.адрес.com/filename.tar
Скачивание с HTTP с указанием логина и пароля
Если для доступа к ресурсу по HTTP требуется указание имени пользователя и пароля, то для этого используются опции —http-user и —http-password :
wget --http-user=ИМЯ_ПОЛЬЗОВАТЕЛЯ --http-password=ПАРОЛЬ http://ftp.адрес.com/filename.tar
Указание количества попыток
Если соединение нестабильное, то можно задать количество попыток, чтобы загрузка файла продолжалась в случае сбоя. Для указания количества попыток используется опция -t :
wget -t 10 http://site.com/filename.zip
По умолчанию установлено количество попыток — 20. Но если при попытке загрузки файла получена ошибка 404 (файл не найден) или connection refused, то скачивание прерывается.
Ожидание между загрузкой файлов
При скачивании большого количества файлов, слишком частое обращение к удаленному серверу с вашей стороны может расцениваться сервером как DDoS атака. Опция -w позволяет задать количество секунд, которое требуется ожидать перед загрузкой очередного файла.
Некоторые веб-сайты умеют распознавать автоматические запросы к сайту, которые происходят с заданной периодичностью. Поэтому даже использование опции -w не всегда помогает. В таких случаях можно воспользоваться дополнительной опцией —random-wait . При ее использовании ожидание перед загрузкой очередного файла составляет случайное количество секунд от 0.5*wait до 1.5*wait. Пример использования (ожидание будет в диапазоне от 15 до 45 секунд):
Указание нескольких опций
В примерах выше мы использовали опции по отдельности. Можно использовать несколько опций в одной команде одновременно, например:
wget -w 50 --random-wait -t 15 --limit-rate=5m http://site.com/file.zip
Заключение
Мы рассмотрели только базовые возможности команды wget по скачиванию файлов. Полный список всех опций и их описание можно получить, выполнив в командной строке: