загрузите и обработайте файл ftp в интервалах набора, с обработкой ошибок, перепланированием и сообщениями о состоянии

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

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

подробно:

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

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

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

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

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

То, что, было бы стандартом запаса способ автоматизировать это?

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

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

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

Это то, что 'Ожидает', для?

Что Вы порекомендуете?

1
задан 11.03.2012, 20:00

1 ответ

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

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

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

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

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

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

1
ответ дан 17.12.2019, 00:25

Теги

Похожие вопросы