Я хочу создать скрипт, который

  • должен запускаться с CRON каждую минуту (вопрос: разумно ли запускать CRON FTP/wget каждую минуту?)
  • сравнивает локальный каталог с удаленным каталогом (Q: я использую FTP или wget и как мне создать

  • получает все более новые / измененные XML-файлы из удаленного каталога (вопрос: как мне перебросить это в одну переменную для последующего использования в цикле)

  • почта уведомить администратора, как только этот процесс не удается

  • скопировать новую / измененную дату_файла_каталогов в каталог_датку_данных

Можно или рекомендуется сегментировать сценарии в config.sh, ftp.sh, copy.sh, mail.sh. В конце я должен обработать XML-файлы с помощью PHP

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

  • 1) мнение о жизнеспособности / анализе
  • 2) как получить $ variable = (ls более новые / измененные файлы?)

2 ответа2

2

Было бы намного проще, если бы вы использовали rsync вместо wget, так как rsync был разработан именно для того, чтобы дать ответ на ваши потребности среди других задач. Вы можете использовать:

rsync -raz -e ssh root@1.1.1.1:/root/dir-to-sync 
/root/dir-where-files-go

Чтобы проверить, не завершился ли процесс, просто проверьте код выхода $? и если значение этой переменной отличается от нуля "0", то что-то пошло не так, и вы можете пометить связь по электронной почте

Чтобы скопировать измененные файлы, используйте временную метку, чтобы узнать, какой файл у вас последний, перед синхронизацией, а затем вы знаете, какие из них новые.

Вы можете создать маску на основе даты в формате ISO для ваших директорий с помощью что-то вроде newdirmask=$(date +%Y%m%d''%H%M%S) и использовать ее позже для mkdir например mkdir /home/$newdirmask ,

0

Вы можете установить cygwin (http://www.cygwin.com/) на свой сервер Windows и использовать все функции rsync в своей среде Windows. Не бойтесь внешнего вида сайта Cygwin. Cygwin - хорошо известное программное обеспечение, которое с моей стороны было более чем протестировано в производстве.

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