Команди Linux і навички оболонки
wget: завантажувач, який ніколи не спить
wget — це curl для завдань, які вимірюються годинами: дзеркала, архіви, рекурсивні завантаження та пакети cron, які виконуються, поки ніхто не спостерігає. Він виконує рекурсію, враховує robots.txt, відновлює перервані передачі за замовчуванням і відповідає за обмеження швидкості та інтервали очікування, що залишається для абонента. Між двома інструментами чіткий розподіл: wget для об’ємності та терпіння, curl для точності, а команда, яка знає обидва, рідко потребує третього інсталятора.
Головне
- Дзеркалювання складається з одного рядка: wget --mirror --convert-links --adjust-extension --no-parent https://docs.example.com; omit --no-parent, і архів документації тихо перетворюється на сканування всього, що над ним.
- Відновити та повторити спробу безкоштовно: wget -c вибирає перерване передавання в резервну копію, а --tries=10 --waitretry=5 виганяє сервери, які гальмують посеред навантаження, замість того, щоб давати збій при першому посмикуванні.
- Ввічливість має прапорці: --limit-rate=200k, --wait=1 і --random-wait запобігає відключенню дзеркала від обмежень висхідної швидкості або положення про порушення спільного сервера; Спільний хостинг плюс необмежений сканер — це коротка дружба.
- robots.txt поважається за замовчуванням; -e robots=off навмисно перевизначає його, і використання цього перевизначення для чужого робочого сайту – це те, як масові завантаження перетворюються на квитки про інциденти.
- wget -O /dev/null -nv https://host/health — це однорядковий моніторинговий тест, коди виходу якого містять діагноз: 4 — збій мережі, 8 — помилка сервера, і обидва перемагають тихий cron.
- Перетворення має значення після факту: --convert-links переписує дзеркальний сайт для офлайн-навігації, а --adjust-extension зберігає сторінки, згенеровані CMS, у розширеннях, які можуть використовуватися локальними інструментами.
- Масові завдання в cron отримують файли блокування, або перекриваються запуски записують у напівзавершені файли один одного, тоді як --waitretry тихо розтягує завдання за вікно; wget не має внутрішнього м'ютексу.
- Знайте межу: форми, сеанси з великою кількістю файлів cookie та кінцеві точки API належать до curl, а створені за допомогою JavaScript сторінки відображаються як порожні оболонки, оскільки wget переходить за посиланнями, а не за сценаріями.
Польова нотатка
Одне дзеркало без --no-parent за ніч заблукало в сорок гігабайтів медіатеки клієнта й майже заповнило диск. Прапори ввічливості встановлюються один раз і потім копіюються назавжди.
Часті запитання
Чому моє дзеркало містить лише одну сторінку?
Прапори області виконали роботу, яку хтось мав намір скасувати: обмеження robots.txt, --no-parent, обмеження глибини або сайт, який відтворюється JavaScript. wget переходить за посиланнями, які він бачить; перевірте -o wget.log перед тим, як звинувачувати інструмент.
Коли я повинен вибрати wget замість curl для одного завантаження?
Для всього, що можна відновити або надійно для cron: -c продовження, вбудовані повторні спроби та відмітка часу (--timestamping) роблять wget вибором, який потребує мало уваги; curl дає вам те саме, лише якщо ви збираєте його самостійно.
Чи законно чи ввічливо віддзеркалювати публічний сайт?
Право власності вирішує законно, robots.txt і завантаження вирішують ввічливо: поважайте файл robots, придушуйте до людської ставки та віддайте перевагу офіційному експорту або API, коли ціль запропонує їх.
Чому деякі сайти повертають 403 у звичайний wget?
Фільтрація за допомогою агента користувача, зазвичай навмисна; --user-agent='Mozilla/5.0' допоможе вам, але відфільтрований 403 також означає, що оператор спостерігає, тому діалог або API є кращим наступним кроком.
Допомога Kinetikatech: команди linux і навички оболонки
Вам не обов'язково ставати експертом із команди linux і навички оболонки: Команди та сценарії, які вирішують, чи керує адміністратор сервером, чи бореться з ним: шукайте, трансформуйте, пересилайте та контролюйте текст і процеси за допомогою інструментів, які присутні в кожній базовій установці. Саме для цього й існує служба Безпека серверів Linux та Адміністрування серверів: налаштування, посилення захисту, моніторинг і жива людина на зв'язку цілодобово.