Здавалося б, у світі, де половина населення планети активно користується комп'ютерами і звикла до стильним графічним інтерфейсами і багатим можливостям такого, вже немає місця для текстових додатків. Якихось 20 років тому інтерфейс комп'ютера представляв собою страшну чорну панель, яка не відображає нічого, крім набору білих символів, а все управління здійснювалося за рахунок текстових команд. Дивно, але наскільки ці програми потворні, настільки ж вони функціональні і надійні.
Що таке Wget?
Wget (яка також іменується GNU Wget Linux) являє собою консольний, не інтерактивне додаток для роботи з файлами та веб-сторінками. По суті, це програма для скачування файлів з мережі Інтернет, яка відрізняється відсутністю графічного інтерфейсу і рядом особливостей в управлінні, нетипових для більш сучасних рішень.
Програма була розроблена інженером з Хорватії Хрвожи Никшичем, а нині розробку підтримує Джузеппе Скривано і спільнота Linux. Перша збірка утиліти (тоді ще під назвою GetURL) була представлена в січні 1996 року. Програма була написана на мові програмування Сі та видавалася за ліцензією GNU. Спочатку інструмент був випущений на платформі Linux. З часом утиліта була перекладена на безліч мов та портована на всі популярні платформи, включаючи Wget для Windows 7 (і новіше), Wget для MacOS і так далі.
Дана програма - не інтерактивна, а значить, будь-який процес, запущеної в межах її можливостей, неможливо взяти під контроль, їм можна управляти, звернувшись до засобів управління самої операційної системи.
Незважаючи на те що сучасні браузери зазвичай мають вбудований менеджер завантажень, вони все ж розраховані на інтерактивну взаємодію, тому робота в ручному режимі стає скрутною. Wget ж, навпаки, дозволяє ряд процесів автоматизувати. Наприклад, існує можливість заздалегідь підготувати текстовий документ зі списком веб-сторінок, використовуючи який можна завантажити відразу кілька файлів і сторінок.
Основні функції програми
Все ж в першу чергу це програма для скачування файлів, з чого випливає очевидність її головної функції. Wget може завантажувати будь-які матеріали з мережі Інтернет, будь то документи, виконавчі файли або цілі веб-сторінки у форматі HTML (за різними протоколами). Файли можуть бути завантажені з директорій за протоколом FTP.
Клієнт може виконувати рекурсивні завантаження в автоматичному режимі переходячи по посиланнях в рамках певного веб-сайту (або декількох веб-сайтів), при цьому відновлюючи початкову структуру веб-сторінки. Є можливість переглядати завантажені веб-сайти без доступу до мережі (за замовчуванням завантажується у вигляді адрес для онлайн-перегляду). Спочатку Wget адаптувався під повільні і нестабільні типи підключень, тому його важливою особливістю є можливість відновити перервану завантаження файлу (це можливо, якщо сервер підтримує заголовки RANGE). Також Wget може моніторити стан серверів (їх доступність) для дозавантаження та оновлення (Wget перевіряє заголовки файлів і підтримує найсвіжішу версію) файлів і веб-сторінки.
Програма також має ряд можливостей, типових для так званих утиліт-павуків, які досліджують різні веб-сайти та сервери на предмет наявності на них певних файлів.
Підтримувані платформи
Wget Linux став базою для даного продукту. Як вже було сказано вище, спочатку утиліта працювала лише на Linux, але швидко набрала популярність і була адаптована під інші системи. Наприклад, можна відшукати версію Wget для Windows 7 і більш сучасних ОС, причому є складання з графічним інтерфейсом. Що стосується Linux, то там програма нерідко вшивається в дистрибутив. Термінали в деяких збірках Linux спочатку підтримують Wget-команди. Ubuntu, Fedora, openSUSE і інші споживчі дистрибутиви працюють з програмою, що називається, з коробки. Далі розглянемо програму більш докладно.
Wget-команди: список основних параметрів
У базовий список команд входять: -V – дозволяє дізнатися, яка версія програми використовується в даний момент; -h – показує найбільш повний список команд для роботи з додатком; -b – дозволяє перевести програму у фоновий режим;
Список параметрів повідомлень
Wget-команди дозволяють повністю контролювати відображувану інформацію. Ось їх список: -o logfile – створює файл-журнал, в який записується весь процес роботи програми; -a logfile – дозволяє доповнити існуючий файл-журнал замість створення нового; -d – відображає необхідну розробникам і відладчиком інформацію (допомагає вирішувати проблеми та виправляти помилки в роботі клієнта); -q – відключає відображення повідомлень; -v – дана опція включена за замовчуванням, надає докладний звіт про всі процеси, що відбуваються в програмі (в реальному часі); -nv – значно скорочує інформацію, що отримується користувачем в повідомленнях. Залишаються лише самі необхідні дані і сповіщення про помилки; -i file (з зазначенням шляху до файлу) – команда дозволяє просканувати файл, виокремивши з нього посилання і виконати завантаження; можна використовувати файли різних форматів, в тому числі HTML, але в разі використання даної команди не варто вказувати шлях до файлу в командному рядку; -f – провокує програму на читання файлу HTML; при використанні цієї команди для роботи з локальним HTML документом, може статися помилка, щоб її уникнути, достатньо вказати в документі .
Список параметрів завантаження
Основні команди для роботи з завантаженням файлів з допомогу Wget. Ось їх базовий набір:
--bind-address=ADDRESS – дана команда дозволяє передати дані bind у ADDRESS локальної машини. При використанні з'єднання TCP/IP, команда необхідна для точного вказування IP-адреси (якщо їх декілька). -t number (потрібно вказати число) – дозволяє користувачеві вибрати кількість повторів завантаження. Щоб уникнути повторів слід вказати значення number дорівнює нулю. -nc – дана команда дозволяє повернути колишнє стан файлу, що завантажується в тому випадку, якщо стався збій в мережі, і завантаження перервався. Якщо не використовувати одну з команд для дозавантаження (-N, -nc, -r), то Wget створить його копію і почне завантаження заново. Параметр -r дозволяє замінити існуючі файли. -з – також сприяє дозавантажити файлу, в разі втрати з'єднання (і коли Wget припинив самостійні спроби відновлення підключення). Досить перед посиланням на файл вказати цю команду. Якщо у директорії знайдеться аналогічний файл, то Wget проведе його ідентифікацію і в автоматичному режимі прийме рішення про його дозавантажити. Команду можна використовувати лише на тих серверах, де є підтримка заголовків RANGE.
--progress – дозволяє вибрати тип відображення прогресу завантаження. Можна вказати –progress=bar або progress=dot. --spider – замінює команду завантаження файлу на перевірку його наявності на сервері; -w (в секундах) – вказує час перерви між завантаженнями. -q (вказується в кількості кілобайт або мегабайт) – дозволяє чітко регулювати розмір завантажуваних даних та лімітувати надмірні обсяги. Тим не менш варто відзначити, що один файл буде завантажений незалежно від виставленої квоти (тобто з одним файлом ця опція працювати не буде, який би він не був важкий).
Список параметрів HTTP
--http-user= і-http-passwd= – дозволяють вказати логін і пароль для авторизації на веб-ресурсі, з якого будуть завантажуватися файли. -C = on/off – дозволяє увімкнути або вимкнути кешування даних на стороні сервера. --cookies = on/off – те ж саме, що і для cache, тільки для cookies. Дозволяє зупинити або відновити обмін даними cookie, необхідними сервера для ведення статистики відвідувань. За замовчуванням опція включена, але cookie-файли не зберігаються на жорсткий диск. --save-cookies – дозволяє зберегти файли cookie (тільки свіжі дані). --proxy-user і –proxy-passwd – дозволяє вказати логін і пароль для авторизації на проксі-сервері (якщо такий задіяний).
Список параметрів FTP
Просунуті параметри для роботи з Wget. Команди FTP: -nr – забороняє видаляти тимчасові файли з директорії .listing, які мимовільно генеруються при роботі з FTP; -g on/off – дозволяє використовувати утиліту спеціальні символи в директоріях FTP; --passive-ftp – дану команду можна використовувати при наявності Firewall'а, щоб активувати пасивний режим FTP (коли користувач сам відповідає за встановлення з'єднання з сервером).
Wget-команди: приклади використання
Самим простим і банальним прикладом для роботи з програмою є, звичайно, завантаження файлів. Щоб протестувати Wget-команди, можна почати з простого, знайти посилання на який-небудь файл в мережі і ввести в консоль/terminal: Wget *посилання із зазначенням точного і повного шляху до файлу*. Щоб продовжити завантаження файлу, використовується: Wget -c *посилання із зазначенням точного і повного шляху до файлу*.
Якщо є запланований список з посиланнями на файли і документи, то можна використовувати команду Wget -i filelist.txt. Що стосується завантаження веб-сторінок, тут все трохи складніше, але при цьому і кількість можливостей значно зростає. Щоб не вводити параметри заново кожен раз, коли виникла необхідність завантажити веб-сайт, можна створити скрипти або прописати всі налаштування в файл .wgetrc. Зберегти веб-сторінку у вигляді посилань (буде складно відкрити їх на локальній машині) можна за допомогою команди Wget -m *посилання із зазначенням точного і повного шляху до файлу*. Щоб ця ж сторінка виявилася доступною для перегляду без підключення до мережі Інтернет, можна використовувати команду Wget -r -10 -k *посилання із зазначенням точного і повного шляху до файлу*. Помилка формату Wget команда не знайдена може означати будь-яку помилку і неправильно вказаний параметр.