Вики / Сеть
wget (скачивание)
Загрузка файлов и зеркалирование сайтов из консоли; докачка, рекурсия.
wget скачивает файлы по HTTP/HTTPS/FTP. В отличие от curl (универсальный
клиент для API), wget заточен под загрузку: докачка, рекурсия, зеркала, повторы.
wget https://site/file.tar.gz # скачать в текущий каталог
wget -O out.tar.gz https://site/x # сохранить под своим именем
| Ключ | Значение |
|---|---|
-O FILE |
сохранить под именем (-O- — в stdout) |
-P DIR |
каталог назначения |
-c |
докачать прерванное (Range) |
-q / -nv |
тихо / не подробно (для скриптов) |
-i FILE |
список URL из файла |
--limit-rate=1m |
ограничить скорость |
-t N / --retry-connrefused |
число повторов |
--timeout=N |
таймаут |
-r -np -k |
рекурсия / не выше каталога / поправить ссылки |
--header= / --user=/--password= |
заголовки / авторизация |
wget -c https://site/big.iso # докачать прерванное
wget -nv -P /downloads https://site/x # тихо, в каталог
wget -O - https://site/script.sh | less # в stdout (посмотреть, не сохраняя)
wget -i urls.txt # скачать список URL из файла
wget --limit-rate=2m https://site/x # ограничить скорость 2 МБ/с
wget -t5 --retry-connrefused https://site/x # упорные повторы (флапающая сеть)
wget --header='Authorization: Bearer TOK' https://api/x # с токеном
wget --user=u --password=p ftp://host/file
# зеркало каталога сайта (осторожно с объёмом):
wget -r -np -k -p https://site/docs/ # рекурсия, не выше, поправить ссылки, +ресурсы
wget -r -l2 -np https://site/ # ограничить глубину -l
ERROR: cannot verify ... certificate
Проблема с TLS-сертификатом/цепочкой. Правильно — починить CA (ca-certificates,
см. openssl-tls); для разовой отладки --no-check-certificate (НЕ в проде).
Скачивание оборвалось
wget -c URL докачает с места обрыва, если сервер поддерживает Range. Для надёжности
в скриптах — -c -t0 --retry-connrefused.
Получил HTML вместо файла
Ссылка ведёт на страницу/редирект/логин, а не на файл. Проверь URL и редиректы
(wget -S покажет заголовки ответа). Для API лучше curl.
Качается бесконечно / зеркалит лишнее
У рекурсии -r без -np/-l нет тормозов. Ограничивай: -np (не выше каталога),
-l N (глубина), -A/-R (фильтр расширений).
Медленно/упирается в канал
--limit-rate= чтобы не забить канал; -q чтобы не засорять лог скрипта.
wget URL # скачать
wget -O name URL # под своим именем
wget -c URL # докачать
wget -O- URL | cmd # в stdout (в конвейер)
wget -i urls.txt # список URL
wget -r -np -k -p URL # зеркало каталога
См. также
- tar (архивы) — Базовые команды
- curl (HTTP из консоли) — Сеть