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

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

  • wget рекурсивный только для файлов, которые передают регулярное выражение
  • Как я могу обновить сертификаты в своей системе, чтобы исправить ошибку wget: «Не удалось установить соединение SSL»?
  • Есть ли параллельный wget? Что-то вроде fping, но только для загрузки?
  • Почему curl -O -C на Mac не загружается
  • Резюме не удалось загрузить с помощью инструмента командной строки Linux
  • Команда Wget, которая возвращает всех веб-страниц на веб-сервере
  • Загрузите файлы в формате pdf и zip с помощью wget с веб-сайта php
  • Загрузите одну страницу html со всей необходимой графикой и связанными файлами pdf / zip
  • 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 
    Linux и Unix - лучшая ОС в мире.