Настройте wget, чтобы не сбрасывать хорошие данные с пустыми данными

У меня в настоящее время есть настройка, где у меня есть аварийный сервер, который по расписанию захватывает файлы с моего основного веб-сервера с помощью wget. Если все пойдет хорошо, я хочу, чтобы wget собирал старый кешированный файл. Однако, если запрос возвращает 404 или что-то еще не так, когда данные не могут быть восстановлены (например, мой главный сервер отключается), я не хочу, чтобы кэшированные данные были сбиты. Я пробовал использовать -N, который правильно собирает данные, если доступна новая версия. Однако, если есть 404, он сжимает данные с 0 байтовыми файлами.

2 Solutions collect form web for “Настройте wget, чтобы не сбрасывать хорошие данные с пустыми данными”

Если вы можете изменить конфигурацию своего веб-сервера или разрешить иметь .htaccess, вы можете настроить собственные страницы ошибок. Например, предположив, что apache как веб-сервер, создайте страницу с ошибкой /var/www/error-pages/404-error.html и добавьте следующее в раздел .htaccess или vhosts.

 Alias /error-pages /var/www/error-pages ErrorDocument 404 /error-pages/404-error.html 

Вместе с директивой alias вы можете использовать одни и те же страницы ошибок для нескольких vhosts, если у вас их несколько. Это само по себе должно помочь не сбивать, но вы также можете добавить -X error-pages к вашим параметрам wget чтобы пропустить все страницы пользовательских ошибок в целом.

Сделайте копию файла перед вызовом wget. (Кажется, не существует способа сказать wget для отсоединения и воссоздания, а не для клонирования файла.)

 cp -p foo foo.prev wget http://example.com/foo if ! [ -S "foo" ]; then mv -f foo.prev foo; done 
  • Bash Пока петли
  • Как я могу преобразовать все html-файлы, которые я получаю в текстовые файлы после команды wget?
  • Как загрузить дубликаты изображений?
  • wget, чтобы получить все файлы в каталоге, возвращает index.html
  • Продолжить загрузку, если временная метка не изменилась
  • Does -q определенно отключить ведение журнала вывода wget?
  • Как вы остановите «wget» после того, как он получит 404?
  • Wget - получение рекурсивных URL-адресов из списка URL-адресов
  • Как я могу ограничить размер загруженного файла в wget?
  • wget конвертировать файл tgz в HTML
  • bash scripting - wget или curl-файл с действием на основе состояния 200 или нет
  • Как сообщить wget для загрузки файлов с именами, закодированными url?
  • Linux и Unix - лучшая ОС в мире.