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

как git добавил себя в путь на OSX 10.6? Это не в bashrc или профиль? [дубликат]
Как скопировать несколько файлов и переместить их в несколько папок с помощью терминала для Mac
Как установить ComixCursors (или другие темы X-cursor) в Ubuntu с помощью сценария оболочки?
Комментарии в многострочной команде bash
Сравните два файла и выведите различия
Как мой MacBook пинговать Google, но не мой роутер?
Что не так с моим сценарием bash, чтобы сохранить последние x-файлы и удалить остальные?
gpg2 --быстрая-addkey без пароля
команда rm: удалить файлы с именами, содержащими скобки
ошибка sed при запуске терминала в OS X
Как установить переменные среды в GitLab CI docker runner?
Терминал, начинающийся с сообщения" no such file or directory: "в OS X
Нет необходимости в экспорте при выполнении функций в subshell
Какова дата изменения отчетов ls для каталогов в оболочке Bash?
Почему я не могу создать символическую ссылку на каталог на том же уровне, что и каталог?

Скрипт для CRON (FTP получать файлы каждую минуту)

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

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

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

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

  • копировать новые / измененные files_this_date в directory_this_date

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

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

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

2 ответов

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

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

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

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

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

2
отвечен Daniel J. 2013-09-03 14:20:07
источник

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

0
отвечен Daniel J. 2013-09-03 14:41:02
источник

Другие вопросы bash cron ftp linux wget