Полное руководство по утилите wget в Linux

Введение в сетевую утилиту wget

Консольная утилита wget выступает фундаментальным инструментом любого системного администратора при взаимодействии с удаленными ресурсами по протоколам HTTP, HTTPS и FTP. В рамках этой статьи разберем прикладное использование утилиты на реальных примерах: научимся гибко контролировать имена сохраняемых объектов, корректно возобновлять прерванные сессии передачи данных и выносить длительные сетевые задачи в фоновый режим.

Подготовка окружения и базовые сценарии загрузки

Первым делом актуализируем репозитории операционной системы и удостоверимся в наличии свежего бинарного пакета wget.

Обновление списков пакетов и установка wget через apt-get

Чтобы не засорять домашний каталог тестовыми данными, организуем изолированную директорию под наши эксперименты и сразу перейдем в нее.

Создание изолированного каталога ~/wget_test и переход в него

По умолчанию утилита выполняет прямое сетевое обращение к указанному веб-адресу и помещает целевой файл в текущую рабочую директорию, сохраняя его исходное имя с удаленного сервера.
⚙️ [Ключевые параметры командной строки]

-O : перенаправляет поток скачивания в явно заданный файл или путь назначения.
-c : активирует механизм возобновления ранее оборванной сессии передачи данных.
-b : мгновенно отвязывает процесс от терминала и переводит его в фоновый режим.
-i : принимает текстовый файл со списком ссылок для пакетного скачивания.
--limit-rate : жестко ограничивает полосу пропускания, занимаемую утилитой.
-q : подавляет вывод логов и шкалы прогресса (режим тишины).
-r : включает рекурсивный обход директорий и веб-страниц на сервере.

Базовое скачивание тестового файла размером 1 Мб

Переопределение имени файла (-O) и сохранение в произвольную папку (-P)

Для отработки опций адресации вернемся в подготовленную рабочую директорию (~/wget_test).

Переход в рабочую папку проекта

Флаг -O позволяет сразу присвоить получаемому объекту произвольное имя — в данном случае переименуем поток в custom_sample.dat.

Сохранение удаленного файла под пользовательским именем custom_sample.dat

Сформируем вложенный каталог (~/wget_test/downloads), в который будем складывать входящие файлы без изменения текущего рабочего каталога сессии.

Создание подкаталога downloads внутри ~/wget_test

Ключ -P указывает утилите целевой путь для сохранения, избавляя от необходимости предварительно переходить в каталог назначения.

Загрузка файла напрямую в целевую директорию с помощью ключа -P

Проинспектируем состояние файловой структуры и размеры полученных объектов через ls -lh.

Проверка содержимого каталогов и размеров файлов

Восстановление разорванных сетевых соединений (-c) при работе с большими объемами данных

Переключаемся в директорию ~/wget_test для проведения теста на устойчивость к сбоям связи.

Возврат в рабочую директорию ~/wget_test

Смоделируем аварийный обрыв соединения посреди передачи: системная утилита timeout принудительно прервет процесс wget ровно через 2 секунды после старта.

Имитация сетевого сбоя через прерывание команды timeout

Оценим состояние частично полученного файла 10Mb.dat. Вывод подтверждает, что на диске остался лишь фрагмент от полного объема в 10 МБ.

Контроль размера неполного файла 10Mb.dat

Параметр -c (continue) заставляет wget отправить серверу заголовок с позицией смещения и докачать недостающие байты вместо повторной передачи всего объема с нуля. Это критически важно при нестабильном канале связи и работе с емкими образами или бэкапами.

Возобновление прерванного соединения и завершение загрузки через ключ -c

Дросселирование скорости (–limit-rate) и запуск задач в фоне (-b)

Снова убеждаемся, что находимся в тестовом каталоге (~/wget_test).

Переход в контекст рабочей папки

Чтобы процесс загрузки не утилизировал весь интернет-канал на сервере, лимитируем предельную скорость передачи до 200 КБ/с с помощью аргумента --limit-rate. Такой подход гарантирует стабильность соседних сетевых сервисов.

Ограничение пропускной способности скачивания до 200 КБ/с

Опция -b запускает загрузку как отдельный демон: сессия терминала освобождается мгновенно, а процесс не погибнет при закрытии SSH-соединения. Ход выполнения автоматически протоколируется в файл wget-log.

Запуск загрузки в фоновом режиме через флаг -b

Сделаем секундную паузу через sleep 1, предоставив демону время для инициализации и создания дескриптора журнала.

Краткая пауза для инициализации лог-файла

Команда tail -n 10 wget-log позволяет оперативно проверить свежие записи журнала: статус рукопожатия с сервером, HTTP-ответы и динамику передачи данных.

Просмотр последних строк журнала wget-log

Мы подробно рассмотрели ключевые механизмы работы с wget в ОС Linux — от базового синтаксиса до отказоустойчивой докачки и автономного фонового исполнения. Грамотное комбинирование этих опций позволяет автоматизировать сетевые операции и поддерживать высокую надежность серверной инфраструктуры.