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

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

  • Wget: конвертировать ссылки и избежать повторной загрузки уже загруженных файлов?
  • Как использовать wget для загрузки с хостинговых сайтов?
  • wget с проверкой 304
  • Загрузите все файлы .gz с веб-сайта с помощью http
  • не может wget rpm oracle на centos linux
  • Как запретить wget загружать списки каталога Apache в разных заказах?
  • Как получить список URL-адресов из URL рекурсивно с фильтрацией
  • Загрузите файл на сервер?
  • 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 - лучшая ОС в мире.