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

Закройте сценарий bash, когда curl получает статус HTTP, отличный от 200
Переименование с помощью exiftool: как бороться с отсутствующими тегами?
Массовая очистка параметров URL из txt-файла
Как удалить все вхождения значений в одном списке из другого списка?
Как использовать faketime в bash?
Неустранимая ошибка Cygwin не удалось настроить ssh-host-config
Как остановить в Git-Bash, то ждать окончания?
Массовое переименование файлов в Bash с сохранением части имени файла
Баш - преобразовать все экземпляры формат даты ДД-ММ-гггг гггг-ММ-ДД [закрыт]
частичное завершение пути к каталогу в стиле emacs в bash
Как автоматически выполнить скрипт при входе в Ubuntu
Запустить сеанс PuTTy на удаленном хосте по сети
Удаляет ли rsync файлы, папки в месте назначения по умолчанию?
Архивирование файлов размером более 2 ГБ в оболочке bash
Командная строка Windows захват вывода сценария 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