3

Как я могу настроить что-то на компьютере с Linux, чтобы в тот момент, когда файл на веб-сервере возвращал что-то отличное от ошибки 404, он загружал его. Я хотел бы, чтобы он прекратил проверять момент запуска файла для успешной загрузки, но все равно повторите попытку, если он не удастся.

Я пытался использовать задание cron с wget, но я не могу понять, как заставить его не создавать пустой файл при ошибке 404.

Это возможно и как?

2 ответа2

2

Вы можете либо проверить (с помощью test -s), что файл имеет содержимое, либо просто использовать возвращаемое значение wget . Загрузите во временный файл, и только если тест пройден, скопируйте в реальный вывод:

$ wget -q -O /tmp/a http://localhost/nonexistent && mv -v /tmp/a /tmp/b
$ wget -q -O /tmp/a http://localhost && mv -v /tmp/a /tmp/b
‘/tmp/a’ -> ‘/tmp/b’
$
0

Вы можете написать скрипт bash, который будет получать URL-адрес, а затем будет проверять вывод. Если вывод содержит, скажем, "404", удалите его. В противном случае вы получили свой файл, и вы можете удалить скрипт из cron (из скрипта). Вы также можете использовать язык сценариев для решения этой проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .