Как я могу скачать файл, как только он станет доступен в Linux?
Как настроить что-то на компьютере с Linux, чтобы в тот момент, когда файл на веб-сервере возвращал что-то, отличное от ошибки 404, он загружал его. Я хотел бы, чтобы он прекратил проверять момент, когда файл начал успешно загружаться, но все же повторите попытку, если это не удалось.
Я пытался использовать задание cron с wget, но я не могу понять, как заставить его не создавать пустой файл при ошибке 404.
Это возможно и как?
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’
$
Вы можете написать скрипт bash, который будет получать URL-адрес, а затем будет проверять вывод. Если вывод содержит, скажем, "404", удалите его. В противном случае вы получили свой файл и можете удалить скрипт из cron (из скрипта). Вы также можете использовать язык сценариев для решения этой проблемы.