Я хочу загружать файл данных с удаленного ftp-сервера на мою машину через определенные промежутки времени. Как только файл загружен, я хочу вызвать другой скрипт, который будет обрабатывать файл.
Моя машина разработки - Mac OS X, возможная среда развертывания - Linux.
в деталях:
существует удаленный публичный ftp-сервер, которым управляет бюро погоды, на котором бюро погоды публикует файлы, содержащие прогнозы погоды. Это не моя машина, я могу только скачать с нее. Бюро погоды помещает новый файл здесь каждые шесть часов, время является частью имени файла. У меня на машине будет инструмент, который сможет обрабатывать данные в этих файлах. Я не прошу помощи в разработке этого инструмента. Я прошу помочь склеить части, составить график загрузки и выполнения инструмента.
Что я хочу сделать:
каждые шесть часов я хочу скачать новый файл с ftp-сервера Бюро погоды. если это не удается, я хочу: отправить электронное письмо и перенести загрузку.
если загрузка не удалась через шесть часов, я хочу прекратить попытки получить этот файл, так как теперь должен появиться новый файл с новым именем.
Как только файл успешно загружен, я хочу вызвать инструмент для его обработки. Если инструмент не работает, потому что файл поврежден, он вернет ошибку, и я хочу перенести файл для загрузки
Каким будет стандартный способ автоматизации этого процесса?
Я знаю, что могу использовать cron, чтобы запланировать загрузку и запуск сценария, который будет обрабатывать загруженный файл через регулярные промежутки времени, и я знаю, что мог бы написать немного более сложный сценарий или приложение, которое сделало бы это и добавило бы обработку ошибок, перепланирование и отправка сообщений о статусе.
Но одно из моих требований для этого проекта - написать как можно меньше пользовательского кода, вместо этого я должен попытаться использовать стандартные, проверенные и проверенные инструменты, а если мне придется писать код, попытаться написать максимально простой код. , Причиной этого является то, что код потенциально может быть установлен на большое количество машин, и все они должны быть настроены, настроены и поддерживаться разными людьми, еще долго после того, как я уйду из проекта, поэтому намерение состоит в том, чтобы хорошо использовать максимально документированные, хорошо поддерживаемые инструменты.
Это кажется довольно распространенной задачей, в Интернете должны быть инструменты и сценарии, написанные людьми, которые тщательно продумали все, что могло бы пойти не так, когда нужно регулярно загружать и обрабатывать файл с удаленного сервера с ошибкой обработка, перепланировка и отправка сообщений о состоянии.
Это то, что «Ожидать» для?
Чтобы вы посоветовали?