Я использую wget
программу, но хочу, чтобы она не сохраняла загружаемый файл HTML. Я хочу, чтобы от него отказались после его получения. Как мне это сделать?
Я использую wget
программу, но хочу, чтобы она не сохраняла загружаемый файл HTML. Я хочу, чтобы от него отказались после его получения. Как мне это сделать?
Ответы:
Вы можете перенаправить вывод wget в / dev / null (или NUL в Windows):
wget http://www.example.com -O /dev/null
Файл не будет записан на диск, но будет загружен.
Если вы не хотите сохранять файл и приняли решение загрузить страницу /dev/null
, я полагаю, вы используете wget, чтобы не получать и не анализировать содержимое страницы .
Если ваша реальная необходимость - запустить какое-либо удаленное действие, проверьте, существует ли эта страница и т. Д. Я думаю, что было бы лучше вообще не загружать HTML-страницу тела.
Поиграйте с wget
опциями, чтобы получить только то, что вам действительно нужно: заголовки http, статус запроса и т. Д.
предполагая, что вам нужно проверить, что страница в порядке (т. е. возвращенный статус - 200), вы можете сделать следующее:
wget --no-cache --spider http://your.server.tld/your/page.html
если вы хотите проанализировать возвращенные заголовки сервера, сделайте следующее:
wget --no-cache -S http://your.server.tld/your/page.html
Смотрите страницу справочника wget для получения дополнительной информации.
Смотрите lynx
тоже, как альтернативу wget.
--no-cache
на странице руководства говорится, что wget «отправляет на удаленный сервер соответствующую директиву (« Pragma: no-cache ») для получения файла от удаленного сервиса»
Если вы также хотите распечатать в консоли результат, который вы можете сделать:
wget -qO- http://www.example.com
q
тихом режиме (он не выводит информацию о ходе и другой информации) и O-
(записывает полученный документ в консоль).
Проверьте опцию "-spider". Я использую его, чтобы убедиться, что мои веб-сайты работают, и отправьте мне электронное письмо, если это не так. Это типичная запись из моего crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Для коробки * NIX и ее использования wget
я предлагаю пропустить запись в файл. На моем Ubuntu 10.04 я заметил, что wget -O /dev/null
wget прерывает загрузку после первой загрузки.
Я также заметил, что wget -O real-file
wget забывает реальные ссылки на странице. Он настаивает на том, index.html
чтобы присутствовать на каждой странице. Такие страницы могут не всегда присутствовать, и wget не будет помнить ссылки, которые он видел ранее.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Обратите внимание, что нет -O file
варианта. wget запишет в каталог $ PWD. В данном случае это файловая система tmpfs только для оперативной памяти . Запись здесь должна обходить откат диска (в зависимости от пространства подкачки) И отслеживать все ссылки. Это должно успешно сканировать весь сайт.
После, конечно,
rm --recursive --force /dev/shm/1/*
Используйте параметр --delete-after, который удаляет файл после его загрузки.
Редактировать: Ой, я только что заметил, что уже ответил.
Согласно справке doc (wget -h), вы можете использовать опцию --spider, чтобы пропустить загрузку (версия 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.
/dev/null
это работать?