Я использую wgetпрограмму, но хочу, чтобы она не сохраняла загружаемый файл HTML. Я хочу, чтобы от него отказались после его получения. Как мне это сделать?
Это не сохраняет страницу, но отправляет мне письмо. Также есть возможность отключить рассылку?
Трант
32
Если вы не хотите сохранять файл и приняли решение загрузить страницу /dev/null, я полагаю, вы используете wget, чтобы не получать и не анализировать содержимое страницы .
Если ваша реальная необходимость - запустить какое-либо удаленное действие, проверьте, существует ли эта страница и т. Д. Я думаю, что было бы лучше вообще не загружать HTML-страницу тела.
Поиграйте с wgetопциями, чтобы получить только то, что вам действительно нужно: заголовки http, статус запроса и т. Д.
предполагая, что вам нужно проверить, что страница в порядке (т. е. возвращенный статус - 200), вы можете сделать следующее:
Я не совсем понимаю. --no-cacheна странице руководства говорится, что wget «отправляет на удаленный сервер соответствующую директиву (« Pragma: no-cache ») для получения файла от удаленного сервиса»
Gaia
Он говорит серверу, что ваш клиент не хочет кэшированную версию файла .. мы хотим получить самый последний выпуск ресурса, который мы запрашиваем
Мне больше нравится этот вариант. Это позволяет мне увидеть, что он получает, но не сохраняет его. Переключатели работают в qтихом режиме (он не выводит информацию о ходе и другой информации) и O-(записывает полученный документ в консоль).
Осьминог
9
Другой альтернативой является использование подобного инструмента curl, который по умолчанию выводит удаленный контент, stdoutа не сохраняет его в файл.
Проверьте опцию "-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
Если вам нужно сканировать веб-сайт с помощью wget и хотите минимизировать отток диска ...
Для коробки * NIX и ее использования wgetя предлагаю пропустить запись в файл. На моем Ubuntu 10.04 я заметил, что wget -O /dev/nullwget прерывает загрузку после первой загрузки.
Я также заметил, что wget -O real-filewget забывает реальные ссылки на странице. Он настаивает на том, index.htmlчтобы присутствовать на каждой странице. Такие страницы могут не всегда присутствовать, и wget не будет помнить ссылки, которые он видел ранее.
Для сканирования без записи на диск лучше всего подходит следующее
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Обратите внимание, что нет -O fileварианта. wget запишет в каталог $ PWD. В данном случае это файловая система tmpfs только для оперативной памяти . Запись здесь должна обходить откат диска (в зависимости от пространства подкачки) И отслеживать все ссылки. Это должно успешно сканировать весь сайт.
/dev/null
это работать?Ответы:
Вы можете перенаправить вывод wget в / dev / null (или NUL в Windows):
Файл не будет записан на диск, но будет загружен.
источник
Если вы не хотите сохранять файл и приняли решение загрузить страницу
/dev/null
, я полагаю, вы используете wget, чтобы не получать и не анализировать содержимое страницы .Если ваша реальная необходимость - запустить какое-либо удаленное действие, проверьте, существует ли эта страница и т. Д. Я думаю, что было бы лучше вообще не загружать HTML-страницу тела.
Поиграйте с
wget
опциями, чтобы получить только то, что вам действительно нужно: заголовки http, статус запроса и т. Д.предполагая, что вам нужно проверить, что страница в порядке (т. е. возвращенный статус - 200), вы можете сделать следующее:
если вы хотите проанализировать возвращенные заголовки сервера, сделайте следующее:
Смотрите страницу справочника wget для получения дополнительной информации.
Смотрите
lynx
тоже, как альтернативу wget.источник
--no-cache
на странице руководства говорится, что wget «отправляет на удаленный сервер соответствующую директиву (« Pragma: no-cache ») для получения файла от удаленного сервиса»$ wget http://www.somewebsite.com -O foo.html --delete-after
источник
--delete-after
Вариантом является выбор , когда вы должны загрузить рекурсивно , но вы хотите отказаться от фактического содержания.-O /dev/null
Если вы также хотите распечатать в консоли результат, который вы можете сделать:
источник
q
тихом режиме (он не выводит информацию о ходе и другой информации) иO-
(записывает полученный документ в консоль).Другой альтернативой является использование подобного инструмента
curl
, который по умолчанию выводит удаленный контент,stdout
а не сохраняет его в файл.источник
Проверьте опцию "-spider". Я использую его, чтобы убедиться, что мои веб-сайты работают, и отправьте мне электронное письмо, если это не так. Это типичная запись из моего crontab:
источник
Если вам нужно сканировать веб-сайт с помощью wget и хотите минимизировать отток диска ...
Для коробки * NIX и ее использования
wget
я предлагаю пропустить запись в файл. На моем Ubuntu 10.04 я заметил, чтоwget -O /dev/null
wget прерывает загрузку после первой загрузки.Я также заметил, что
wget -O real-file
wget забывает реальные ссылки на странице. Он настаивает на том,index.html
чтобы присутствовать на каждой странице. Такие страницы могут не всегда присутствовать, и wget не будет помнить ссылки, которые он видел ранее.Для сканирования без записи на диск лучше всего подходит следующее
Обратите внимание, что нет
-O file
варианта. wget запишет в каталог $ PWD. В данном случае это файловая система tmpfs только для оперативной памяти . Запись здесь должна обходить откат диска (в зависимости от пространства подкачки) И отслеживать все ссылки. Это должно успешно сканировать весь сайт.После, конечно,
источник
Используйте параметр --delete-after, который удаляет файл после его загрузки.
Редактировать: Ой, я только что заметил, что уже ответил.
источник
Согласно справке doc (wget -h), вы можете использовать опцию --spider, чтобы пропустить загрузку (версия 1.14).
источник