Надежный экспорт и копирование SVN-скрипта? - PullRequest
2 голосов
/ 02 апреля 2009

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

Это будет задание по расписанию, работающее на компьютере с Windows Server 2003. Все удаленные серверы находятся в сети, поэтому нет необходимости в FTP и т. Д.

Псевдокод будет работать так

1. svn export repo localdir (plus some switches)
2. ... wait to make sure export is finished ...
3. robocopy localdir \\remotedir1
4. robocopy localdir \\remotedir2, etc

Я очень новичок в написании пакетных заданий, но я бы хотел, чтобы это было максимально надежно: - копирование не начинается, пока не будет выполнен экспорт - если копирование в remotedir1 завершится неудачно, скрипт все равно продолжит копирование в remotedir2,3 и т. д. - возможно ли регистрировать проблемы, если на одном из этапов возникли проблемы?

Любая информация о том, как будет выглядеть пакетное задание, будет принята с благодарностью!

Ответы [ 2 ]

3 голосов
/ 03 апреля 2009

Вам, вероятно, не нужен шаг 2 для ожидания, так как SVN блокирует при экспорте. Кроме того, это выглядит хорошо. Вы можете использовать

svn export ... || (echo SVN export failed > log.txt & goto :eof)

для регистрации сбоев и остановки пакета в случае сбоя экспорта. || в основном говорит, что команда (ы) после || выполняется только в случае сбоя предыдущей команды (уровень ошибки> 0). goto :eof выходит из пакетного файла (или подпрограммы), в качестве альтернативы вы можете использовать exit /b для этого.

Вы можете также применить эту цепочку к командам robocopy:

robocopy ... || echo Copy to remotedir1 failed > log.txt

или что-то в этом роде.

Другим, более подробным способом будет блок if после каждой команды, которую вы хотите защитить:

if errorlevel 1 (
  echo Stuff > log.txt
)

Однако все эти методы нуждаются в правильных кодах выхода из инструментов.

1 голос
/ 02 апреля 2009

Муравей (требуется Java) может быть хорошим кандидатом для такого рода работы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...