Статьи

Шпаргалка по Wget - Я системний адміністратор

  1. Файли конфігурації:
  2. синтаксис:
  3. параметри:
  4. Параметри завантаження папок
  5. параметри HTTP
  6. параметри FTP
  7. Параметри рекурсивної завантаження
  8. Параметри заборони / дозволу рекурсивної завантаження

GNU Wget - це маленька корисна і відкрито поширюється утиліта для завантаження файлів з Інтернет. Вона підтримує протоколи HTTP, HTTPS, і FTP, завантаження з серверів проксі по протоколу HTTP. Серед можливостей програми варто відзначити:

  • Обхід сайту: Wget може переходити за посиланнями на HTML сторінках і створювати локальні копії видалених сайтів web, при цьому можливе повне відновлення структури папок сайту ( "recursive downloading" - рекурсивна завантаження). Під час такої роботи Wget шукає файл з правами доступу для роботів (/robots.txt). Можлива також конвертація посилань в завантажених файлах HTML для подальшого перегляду сайту в автономному режимі ( "off-line browsing").
  • Перевірка заголовків файлів: Wget може зчитувати заголовки файлів (це доступно по протоколах HTTP і FTP) і порівнювати їх з заголовкам раніше завантажених файлів, після чого може завантажити нові версії файлів. Це дозволяє використовувати Wget для дзеркального зберігання сайтів або набору файлів на FTP.
  • Продовження завантаження: якщо під час завантаження виникне проблема, то Wget намагатиметься продовжити завантаження файлу. Якщо сервер, з якого завантажується файл, підтримує докачку файлоа, то Wget продовжить завантажувати файл саме з того місця, де обірвалося завантаження.

Файли конфігурації:

/ Usr / local / etc / wgetrc - Розташування файлу налаштувань за замовчуванням.
.wgetrc - Файл налаштувань користувача конкретного користувача (розташований не інначе як в папці користувача).

синтаксис:

wget [параметри] [URL]

параметри:

  • -V (--version) - Показати версію Wget.
  • -h (--help) - Показати параметри командного рядка Wget.
  • -b (--background) - Перейти в фоновий режим після запуску. Якщо файл для повідомлень не вказано параметром -o, то він записується в wget-log
  • -e command (--execute command) - Виконати command як якби вона була частиною .wgetrc. Команда буде виконана після команд в .wgetrc.

Параметри повідомлень:

  • -o logfile (--output-file = logfile) - Записувати всі повідомлення в logfile. Інакше вони будуть спрямовані в stderr.
  • -a logfile (--append-output = logfile) - Доповнити logfile. Як і -o, тільки logfile не замінює, а доповнюється. Якщо logfile не існує, створюється новий файл.
  • -d (--debug) - Відображати повідомлення налагодження - різна інформація, важлива для розробників Wget.
  • -q (--quiet) - Вимкнути повідомлення Wget.
  • -v (--verbose) - Включити докладні повідомлення, з усіма доступними даними. За замовчуванням включено.
  • -nv (--non-verbose) - Ісопльзовать скорочені повідомлення (щоб вимкнути повідомлення, див. -q). Повідомлення про помилки та основна інформація будуть відображатися.
  • -i file (--input-file = file) - Вважати URL з file. В цьому випадку вказувати URL в командному рядку не потрібно. Якщо URL вказані і в командному рядку і в file, то спочатку будуть завантажені URL з командного рядка. file не обов'язково повинен мати формат HTML (але нічого страшного, якщо це так) - URL просто повинні бути вказані в ньому. (Якщо ви вкажете --force-html, то файл буде прочитаний як html. У цьому випадку можуть виникнути проблеми з відносними посиланнями. Це можна запобігти додаванням в нього "<base href =" / url ">" або введенням в командному рядку - -base = url.)
  • -F (--force-html) - При читанні URL з файлу, включає читання файлу як HTML. Для запобігання помилок в разі локального файлу HTML додайте в файл "<base href =" / url ">" або введіть параметр командного рядка --base.
  • -B URL (--base = URL) - При читанні URL з файлу (-F) визначає URL, що додається до відносних адресах файлу, вказаного параметром -i.

Завантаження

  • --bind-address = ADDRESS - При з'єднаннях по протоколам TCP / IP передає "bind ()" в ADDRESS на локальній машині. У ADDRESS може бути зазначено як ім'я хоста, так і IP адреса. Використовується, якщо ваш комп'ютер має декілька адрес IP.
  • -t number (--tries = number) - Встановлює число повторів number. Вкажіть 0 або inf для скасування повторів.
  • -O file (--output-document = file) - Документів не будуть записуватися у відповідні файли, а будуть об'єднані разом і записані в файл file. Якщо file існує, то він буде замінений. Якщо file вказано, як -, то документи будуть виводитися на стандартний висновок (stdout). Цей параметр автоматично встановлює число повторів в 1. Корисний при закачуванні розділених на частини файлів з поштових серверів через інтерфейс web.
  • -nc (--no-clobber) - Якщо при завантаженні сайту зв'язок обірвався, то вкажіть цей параметр для продовження завантаження з місця переривання зв'язку.

При запуску Wget без параметрів -N, -nc, або -r завантаження одного і того ж файлу в одну папку призведе до створення копії файлу з ім'ям file .1. Якщо існує файл і з таким ім'ям, третя копія буде називатися file .2 і т.д. При параметрі -nc будуть виводитися попередження про це.

При запуску Wget з параметром -r, але без -N або -nc, нова завантаження сайту призведе до заміни вже завантажених файлів. При вказівці параметра -nc завантаження продовжиться з місця обриву і завантажені файли не будуть завантажуватися заново (якщо тільки вони не змінилися) .При запуску Wget з параметром -N, з або без -r, файл буде завантажений тільки якщо він новіший вже існуючого, або якщо розмір його не збігається з наявною копією (див. Порівняння за датою). -nc НЕ комбінується з -N.Прі указаному параметрі -nc файли з розширеннями .html або (ось це просто жахливо) .htm з локальних дисків будуть завантажуватися, як ніби-то з інтернет.

  • -c (--continue) - Відновлення завантаження файлу. Використовується, якщо завантаження файлу була перервана. наприклад:

wget -c ftp://Kyrych.ru/ls-lR.Z

Якщо в цій папці вже є файл з ім'ям ls-lR.Z, то Wget перевірить, чи відповідає даний файл завантажений (не за розміром!), І якщо це так, то відправить запит на сервер на продовження завантаження файлу з того ж місця, де обірвалося завантаження в минулий раз. Пам'ятайте, що при обриві зв'язку Wget повторює спроби дозавантаження самостійно і без параметра -c, і тільки коли він "здасться" і завершить свою роботу, то для відновлення завантаження файлу буде потрібен цей параметр.

Без вказівки опції -c попередній приклад приведе до завантаження зазначеного файлу заново з кінцевим ім'ям ls-lR.Z.1, ніяк не чіпаючи вже наявний ls-lR.Z.

Починаючи з версії 1.7 при вказівці параметра -c якщо файл на сервері має рівний або менший, ніж у локального файлу, розмір, то Wget не буде нічого завантажувати і відобразить відповідне повідомлення.

При використанні -c будь-який файл на сервері, що має більший розмір, ніж локальний файл, буде розглядатися, як недокачанний. При цьому будуть завантажені і записані в кінець файлу тільки "відсутні" байти більшого фоайла. Це може стати в нагоді, якщо протягом п'яти років вам потрібно завантажити нові повідомлення з будь-якого журналу (log).

При цьому якщо завантажений файл більше тому, що він змінився, то ви отримаєте пошкоджений файл (тобто файл може в підсумку вийти зовсім відмінним від оригіналу). Потрібно бути особливо уважним при використанні -c разом з -r, так як кожен змінений файл може бути кандидатом на `` незавершену завантаження ''.

Ви також отримаєте пошкоджений файл якщо ваш сервер проксі HTTP працює нерозумно і при обриві з'єднання пише в файл повідомлення '' transfer interrupted ''. Ймовірно, в наступних версіях Wget сам буде виправляти це.

Пам'ятайте, що -c працює тільки з серверами FTP і HTTP, що підтримують заголовки "Range" (тобто докачку файлів).

За замовчуванням використовується `` bar ''. Вказівка ​​опції --progress = bar призведе до промальовуванні красивого індикатора з символів ASCII (як '' термометр ''). Якщо стандартний виходу не TTY, то буде використаний `` dot ''.

Вкажіть --progress = dot щоб переключиться на тип `` dot ''. Прогрес завантаження буде відзначатися додаванням в смузі точки або знака одно, кожен символ представляє однакову кількість даних.

При використанні цього типу, ви можете вказати його стиль - dot: style. Якщо стиль "default", то кожен символ буде представляти 1 Kб, 10 символів в кластері і 50 в рядку. Стиль "binary" має більш '' комп'ютерний '' вид - 8Kб в символі, 16 символів в кластері і 48 символів в рядку (виходить рядок на 384 Kб). Стиль "mega" використовується для завантаження великих файлів - кожен символ представляє 64Kб, 8 символів в кластері і 48 символів в рядку (виходить 3 Mб на рядок).

Ви можете визначити стиль за замовчуванням, використовуючи команду "progress" в .wgetrc. Якщо ви хочете, щоб тип індикатора `` bar '' використовувався завжди (а не тільки при виведенні в stdout), то вкажіть --progress = bar: force.

wget --spider --force-html -i bookmarks.html

Wget не містить всі можливості "справжніх павуків" для WWW.

При вичерпанні квоти поточний файл завантажується до кінця, тобто квота не працює при завантаженні одного файлу. Наприклад, якщо ви ісполніет wget -Q10k ftp://Kyrych.ru/ls-lR.gz, то файл ls-lR.gz буде повністю завантажений. Також всі зазначені в командному рядку файли будуть обов'язково завантажені, на відміну від списку файлів в одному файлі або як при рекурсивної завантаженні.

Вказівка ​​0 або inf скасує квоту.

Параметри завантаження папок

  • -nd (--no-directories) - Не створювати структуру папок при рекурсивної завантаженні. При зазначеному параметрі, всі файли будуть завантажуватися в одну папку. Якщо файл з такою назвою вже існує, то він буде збережений під ім'ям ІмяФайла.n.
  • -x (--force-directories) - Протилежно параметру -nd - створювати структуру папок, починаючи з головної сторінки сервера. Наприклад, wget -x http://Kyrych.ru/robots.txt призведе до завантаження файлу в папку fly.srk.fer.hr.
  • -nH (--no-host-directories) - Не створювати порожні папки на початку структури. За замовчуванням / pub / xemacs /. Якщо ви завантажили її з параметром -r, то вона збережеться під ім'ям ftp.kyrych.ru/pub/xemacs/. З параметром -nH з імені початкової папки виріже ftp.kyrych.ru/, і вона буде називатися pub / xemacs. А параметр --cut-dirs прибере number компонентів.

Якщо ви хочете просто позбутися від структури папок, то ви можете замінити цей параметр на -nd і -P. На відміну від -nd, -nd працює з підкаталогами - наприклад, при -nH --cut-dirs = 1 підкаталог beta / запишеться, як xemacs / beta.

  • -P prefix (--directory-prefix = prefix) - Визначає початкову папку, в якій буде збережена структура папок сайту (або просто файли). За замовчуванням цей параметр дорівнює. (Поточна папка).

параметри HTTP

  • -E (--html-extension) - Якщо тип завантаженого файлу text / html і його адреса не закінчується на \. [Hh] [Tt] [Mm] [Ll] ?, при використанні даного параметра до його імені буде додано .html . Це може бути корисно при дзеркальному зберіганні сторінок .asp, якщо ви не хочете, щоб вони втручалися в роботу вашого сервера Apache. Інший випадок застосування цього парамеров - це завантаження сторінок-відповідей CGI скриптів. Сторінка з URL виду http://kyrych.ru/article.cgi?25 буде збережена, як article.cgi? 25.html. (При оновленні або інший перезавантаження сторінок з даними параметром останні будуть завантажуватися заново в будь-якому випадку, тому що Wget не може дізнатися, чи має відношення локальний файл X.html до завантажуваного з URL X. Щоб уникнути зайвої перезавантаження, використовуйте опції -k і -K. При цьому оригінальні версії файлів будуть також збережені як X.orig.)
  • --http-user = user (--http-passwd = password) - Ім'я користувача user і пароль password для сервера HTTP. Залежно від типу відгуку, Wget буде використовувати "basic" (небезпечну) або "digest" (захищену) авторизацію. Можна також вказувати ім'я користувача і пароль і в самому URL.
  • -C on / off (--cache = on / off) - Вмикає або вимикає кешування з боку сервера. При цьому Wget надсилає відповідних запит (Pragma: no-cache). Також використовується для швидкого оновлення файлів на проксі-сервері. За замовчуванням кешування дозволено.
  • --cookies = on / off - Вмикає або вимикає використання cookie. Сервер відправляє клієнту cookie, використовуючи заголовок "Set-Cookie" і клієнт відповідає таким же cookie. Завдяки цьому сервер може вести статистику відвідувачів. За замовчуванням cookie використовуються, але запис їх на диск вимкнена.
  • --load-cookies file - Завантажувати cookie з file до першого закладання HTTP. file має текстовий формат, як cookies.txt у Netscape. Цей параметр використовується при створення дзеркал. Для цього Wget відправляє ті ж cookies, які відправляє ваш браузер при з'єднанні з сервером HTTP. Це включається даними параметром - просто вкажіть Wget шлях до cookies.txt. Різні браузери зберігають cookie в різних папках:

Параметр --load-cookies буде працювати з cookie в форматі Netscape, який підтримується Wget.

Якщо ви не можете використовувати параметр --load-cookies, то все одно є вихід. Якщо ваш оглядач підтримує Запишіть ім'я і значення cookie і вручну вкажіть Wget відправку цих cookie: wget --cookies = off --header "Cookie: I <name> = I <value>"

  • --save-cookies file - Зберегти cookie з file в кінці сесії. Застарілі cookie не зберігаються.
  • --ignore-length - Деякі сервери HTTP (точніше, скрипти CGI) відправляють заголовки "Content-Length", які вказують Wget, що завантажено ще не все. І Wget завантажує один документ кілька разів. З цим параметром, Wget буде ігнорувати заголовки "Content-Length".
  • --header = additional-header - Визначає additional-header, що відправляється сервера HTTP. Він повинен містити: і символи після нього. Ви можете визначити кілька додаткових заголовків через використання --header кілька разів.

wget --header = 'Accept-Charset: iso-8859-2' --header = 'Accept-Language: hr' http://kyrych.ru/Указание порожнього рядка в значенні заголовка очистить все певні користувачем до цього заголовки.

  • --proxy-user = user і --proxy-passwd = password - Визначає ім'я користувача user і пароль password для авторизації сервері проксі. Буде використаний тип авторизації "basic".
  • --referer = url - Додає заголовок `Referer: url 'в запит HTTP. Використовується при завантаженні сторінок, які передаються правильно тільки якщо сервер знає, з якої сторінки ви прийшли.
  • -s (--save-headers) - Зберігати заголовки, що відправляються серверів HTTP.
  • -U agent-string (--user-agent = agent-string) - ідентифікувати, як agent-string при запиті на HTTP сервер. Протокол HTTP дозволяє визначати себе використанням заголовка агента. Wget за замовчуванням ідентифікується, як Wget / version, де version - це версія Wget. Деякі сервери видають необхідну інформацію тільки для оглядачів, ідентифікуються як "Mozilla" або Microsoft "Internet Explorer". Цей параметр дозволяє обдурити такі сервери.

параметри FTP

  • -nr (--dont-remove-listing) - Чи не видаляти тимчасові файли .listing, що генеруються при завантаженні по FTP. Ці файли містять інформацію про папках серверів FTP. Невидаленого допоможе вам швидко визначити оновлення папок сервера (тобто визначати., Що ваше дзеркало є таким). Якщо ви не видаляєте .listing, то пам'ятайте про свою безпеку! Наприклад, з таким ім'ям можна створити символічне посилання на / etc / passwd або щось ще.
  • -g on / off (--glob = on / off) - Вмикає або вимикає використання спеціальних символів (маски) по протоколу FTP. Це може бути *,?, [І]. наприклад:

wget ftp://kyrych.ru/*.msg

За замовчуванням використання символів маски дозволено, якщо URL містить такі символи. Ви можете також взяти URL в лапки. Це спрацює тільки на серверах Unix FTP (і емулює вихід Unix "ls").
  • --passive-ftp - Включає пасивний режим FTP, коли з'єднання ініціюється клієнтом. Використовується при наявності firewall.
  • --retr-symlinks - При рекурсивної завантаженні папок FTP файли, на які вказують символічні посилання, не завантажуються. Даний параметр відключає це. Параметр --retr-symlinks працює зараз тільки для файлів, не для папок. Пам'ятайте, що цей параметр не працює при завантаженні одиночного файлу.

Параметри рекурсивної завантаження

  • -r (--recursive) - Включити рекурсивне отримання.
  • -l depth (--level = depth) - Максимальна глибина рекурсивної завантаження depth. За замовчуванням її значення дорівнює 5.
  • --delete-after - Видаляти кожну сторінку (локально) після її завантаження. Використовується для збереження нових версій часто запитуваних сторінок на проксі. наприклад:

wget -r -nd --delete-after http://kyrych.ru/~popular/page/

Параметр -r включає завантаження за замовчуванням, параметр -nd відключає створення папок. При зазначеному параметрі --delete-after буде ігноруватися параметр --convert-links.

  • -k (--convert-links) - После Завершення завантаження конвертуваті ПОСИЛАННЯ в документі для перегляду в автономному режімі. Це стосується НЕ только бачимо посилання на агентство інші документи, а посилання на агентство всі Зовнішні Локальні файли. Кожне посилання змінюється одним з двох способів:

Посилання на файли, завантажені Wget змінюються на відповідні відносні посилання.

Наприклад: якщо долучення /foo/doc.html, то посилання на також долучення /bar/img.gif буде виглядати, як ../bar/img.gif. Цей спосіб працює, якщо є видиме співвідношення між папками одного і іншого файлу.
Посилання на файли, не завантажені Wget будуть змінені на абсолютні адреси цих файлів на віддаленому сервері.

Наприклад: якщо долучення /foo/doc.html містить посилання на /bar/img.gif (або на ../bar/img.gif), то посилання у файлі doc.html зміниться на http: // host / bar / img.gif.

Завдяки цьому, можливий автономний перегляд сайту і файлів: якщо завантажений файл, на який є посилання, то посилання буде вказувати на нього, якщо немає - то посилання буде вказувати на його адресу в інтернет (якщо такий існує). При конвертації використовуються відносні посилання, значить ви зможете переносити завантажений сайт в іншу папку, не змінюючи його структуру. Тільки після завершення завантаження Wget знає, які файли були завантажені. Отже, при параметрі -k конвертація відбудеться тільки після завершення завантаження.

  • -K (--backup-converted) - Конвертувати посилання назад - прибирати розширення .orig. Змінює поведінку опції -N.
  • -m (--mirror) - Включити параметри для дзеркального зберігання сайтів. Цей параметр дорівнює кільком параметрам: -r -N -l inf -nr. Для невибагливого зберігання дзеркальних копій сайтів ви можете використовувати цю можливість.
  • -p (--page-requisites) - Завантажувати всі файли, які потрібні для відображення сторінок HTML. Наприклад: малюнки, звук, каскадні таблиці стилів.

За замовчуванням такі файли не завантажуються. Параметри -r і -l, зазначені разом можуть допомогти, але тому що Wget не розрізняє зовнішні та внутрішні документи, то немає гарантії, що завантажиться все необхідне.

Параметри заборони / дозволу рекурсивної завантаження

  • -A acclist (--accept acclist) - Список імен файлів, розділених комами, які слід завантажувати. Дозволяється завдання імен файлів по масці.
  • -R rejlist (--reject rejlist) - Список імен файлів, розділених комами, які не слід завантажувати. Дозволяється завдання імен файлів по масці.
  • -D domain-list (--domains = domain-list) - Список доменів domain-list, з яких дозволено завантажувати файли. Розділяється комами. Цей параметр не включає -H.
  • --exclude-domains domain-list - Список доменів, з яких не дозволено завантажувати файли
  • --follow-ftp - Слідувати по посиланнях FTP з HTML сторінок. Інакше, посилання на файли по протоколу FTP ігноруються.
  • --follow-tags = list - Wget має вбудовану таблицю тегів HTML, в яких він шукає посилання на інші файли. Ви можете вказати додаткові теги в розділеному комами списку list в цьому параметрі.
  • -G list (--ignore-tags = list) - Назад --follow-tags. Для пропуску тегів HTML при рекурсивної завантаженні, вкажіть їх в розділеному комами списку list.
  • -H (--span-hosts) - Дозволяє відвідувати будь-які сервера, на які є посилання.
  • -L (--relative) - Слідувати тільки за відносними посиланнями. При цьому параметрі файли з інших серверів точно не будуть завантажуватися.
  • -I list (--include-directories = list) - Список папок, розділених комами, з яких дозволено завантажувати файли. Елементи списку list можуть містити символи масок.
  • -X list (--exclude-directories = list) - Список папок, розділених комами, що виключаються для завантаження (див. Обмеження по папках). Елементи списку list можуть містити символи масок.
  • -np (--no-parent) - Чи не підніматися вище початкової адреси при рекурсивної завантаженні.

Приклади ВИКОРИСТАННЯ

  • Завантажити URL:

wget http://kyrych.ru/

  • Завантажити файл збільшивши кількість спроб до 60 спроби установки нового з'єднання (за замовчуванням 20):

wget --tries = 60 http://kyrych.ru/jpg/flyweb.jpg

  • Запустити Wget в фоновому режимі, і зберігати повідомлення в журнал log. (Символ амперсанда в кінці вказує командному інтерпретатору продовжувати роботу, не чекаючи завершення роботи Wget. Щоб програма робила повтори нескінченно - використовуйте -t inf.)

wget -t 45 -o log http://kyrych.ru/jpg/flyweb.jpg &

  • Завантажити файл по FTP:

wget ftp://kyrych.ru/welcome.msg

wget ftp://kyrych.ru/pub/gnu/links index.html

wget -i I <file>

wget -r http://www.gnu.org/ -o gnulog

wget --convert-links -r http://www.gnu.org/ -o gnulog

wget -p --convert-links http://www.server.com/dir/page.html

wget -p --convert-links -nH -nd -Pdownload http://www.server.com/dir/page.html

wget -S http://www.lycos.com/

wget -s http://www.lycos.com/more index.html

wget -r -l2 -P / tmp ftp://wuarchive.wustl.edu/

wget -r -l1 --no-parent -A.gif http://www.server.com/dir/

-r -l1 включає рекурсивне отримання з максимальною глибиною 1. --no-parent вимикає проходження по посиланнях в батьківську папку, що має верхній рівень, -A.gif дозволяє завантажувати тільки файли з розширенням .GIF. -A `` * .gif '' також буде працювати.

wget -nc -r http://www.gnu.org/

[email protected]/.emacs "> ftp: // hniksic: [email protected]/.emacs

  • Ви хочете, щоб завантажуються документи йшли в стандартний висновок, а не в файли?

wget -O - http://jagor.srce.hr/ http://www.srce.hr/

wget -O - http://cool.list.com/ | wget --force-html -i -

crontab 0 0 * * 0 wget --mirror http://www.gnu.org/ -o / home / me / weeklog

wget --mirror --convert-links --backup-converted http://www.gnu.org/ -o / home / me / weeklog

wget --mirror --convert-links --backup-converted --html-extension -o / home / me / weeklog http://www.gnu.org/

wget -m -k -K -E http://www.gnu.org/ -o / home / me / weeklog

Hh] [Tt] [Mm] [Ll] ?
Cgi?
Cgi?
Це може бути *,?

Новости