Вопрос

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

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

Есть ли какой-либо скрипт в expect, который может позаботиться о SVN и scp для обнаружения и передачи пароля SVN, а затем SCP?

Я использую следующее:

spawn svn [lindex $argv 0]
expect " password: $"
send "$password\r"
expect { 
    " password: $"    send "$password\r"
    "^At revision "
    "^Updated to revision "
}

Пароль и команду up я передаю из командной строки, но там есть угроза безопасности, если у кого-то есть доступ к истории.Ответы, упомянутые ниже, не удовлетворяют моим предварительным требованиям, также я пока не могу выполнить экспорт [некоторые другие проблемы безопасности:-(]

Это было полезно?

Решение

linuxbashscript.sh

svn up /path/to/local/copy
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host

или еще лучше пользовательский svn-экспорт, который исключит все каталоги .svn.

svn export /path/to/repo /path/to/exported
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host

Другие советы

Если вы используете протокол svn + ssh для доступа к репозиторию SVN, вы можете использовать ключи SSH и ssh-agent для управления квитированием, поэтому вам не нужно вводить пароли.

Лично я бы использовал ANT для выполнения всех этих задач, а затем вы могли бы при необходимости вызвать свой скрипт ant. Ant имеет предварительно сконфигурированные задачи для svn и scp, а также многие другие задачи типа автоматизации сборки.

Если бы (как предложил Дэйв) вы использовали Ant, в вашем распоряжении были бы следующие задачи:

Вы можете сохранить пароли в отдельный файл свойств, если вас беспокоит безопасность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top