1

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

Моя машина разработки - Mac OS X, возможная среда развертывания - Linux.

в деталях:

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

Что я хочу сделать:

каждые шесть часов я хочу скачать новый файл с ftp-сервера Бюро погоды. если это не удается, я хочу: отправить электронное письмо и перенести загрузку.

если загрузка не удалась через шесть часов, я хочу прекратить попытки получить этот файл, так как теперь должен появиться новый файл с новым именем.

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

Каким будет стандартный способ автоматизации этого процесса?

Я знаю, что могу использовать cron, чтобы запланировать загрузку и запуск сценария, который будет обрабатывать загруженный файл через регулярные промежутки времени, и я знаю, что мог бы написать немного более сложный сценарий или приложение, которое сделало бы это и добавило бы обработку ошибок, перепланирование и отправка сообщений о статусе.

Но одно из моих требований для этого проекта - написать как можно меньше пользовательского кода, вместо этого я должен попытаться использовать стандартные, проверенные и проверенные инструменты, а если мне придется писать код, попытаться написать максимально простой код. , Причиной этого является то, что код потенциально может быть установлен на большое количество машин, и все они должны быть настроены, настроены и поддерживаться разными людьми, еще долго после того, как я уйду из проекта, поэтому намерение состоит в том, чтобы хорошо использовать максимально документированные, хорошо поддерживаемые инструменты.

Это кажется довольно распространенной задачей, в Интернете должны быть инструменты и сценарии, написанные людьми, которые тщательно продумали все, что могло бы пойти не так, когда нужно регулярно загружать и обрабатывать файл с удаленного сервера с ошибкой обработка, перепланировка и отправка сообщений о состоянии.

Это то, что «Ожидать» для?

Чтобы вы посоветовали?

1 ответ1

1

Хм, это широкая, общая спецификация, так что трудно быть точным.

  • Будут ли все машины, предоставляющие данные, работать под управлением Linux? Если это так, возможно, обратите внимание на использование rsync (или scp) для извлечения файлов данных, так как это уменьшит необходимость в большом количестве сценариев передачи файлов (а не того, что их будет много) и, возможно, избавит от необходимости ожидать который часто может быть вызван незапланированным сообщением или событием.

  • Вы не говорите, какая «обработка» потребуется для загруженных / перенесенных файлов, поэтому трудно комментировать.

  • Перепланирование может быть обработано cron или, в случае ошибки передачи, достаточно просто прочитать rsync или состояние выхода scp.

  • Как отправлять статусные сообщения? Если по электронной почте, то вы можете использовать стандартную команду « mail » из командной строки или есть прекрасный инструмент, который может отправлять SMS-сообщения через подключенный модем.

На первый взгляд это выглядит так, как будто небольшое количество сценариев bash-типа объединит достаточно стандартных команд, чтобы делать то, что вы хотите, чтобы вам не нужно было заимствовать код из другого места, но если вы сможете уточнить, вероятно, получите больше ответов.

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