Pergunta

Eu estou tentando usar um script automatizado, o que login para SVN, atualizar minhas fontes, crie um arquivo tar com estes e scp-los a um host remoto.

O problema aqui é que, para cada login para SVN (mesmo para check-out ou atualizar), que exigem para entrar na nossa senha. Automação de digitar a senha, a única maneira que eu poderia encontrar, estava usando esperar para trabalhar sobre este assunto.

Há qualquer script em espera, que pode cuidar de SVN e scp para detectar e dar a senha para SVN e depois para SCP?

Eu estou usando o seguinte:

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

A senha e até comando i passar pela linha de comando, mas não é uma ameaça à segurança lá se alguém tem acesso ao histórico. As respostas abaixo mencionados não satisfazer as minhas pré-requisitos, também eu não sou capaz de fazer uma exportação para agora [algumas outras preocupações de segurança: - (]

Foi útil?

Solução

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

ou ainda melhor do usuário svn exportação que irá excluir todos os diretórios .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

Outras dicas

Se você estiver usando o protocolo svn + ssh para acessar o seu repo SVN do que você pode usar chaves SSH e ssh-agent para gerir o aperto de mão para que você não necessidade de envolver senhas.

Pessoalmente eu gostaria de usar ANT para fazer todas essas tarefas e, em seguida, você pode chamar seu script ant, conforme necessário. Ant tem pré-configurado tarefas para o SVN e scp, bem como muitas outras tarefas tipo de automação de construção.

Se (como Dave sugerido), você usaria Formiga, você tem as seguintes funções à sua disposição:

  • SvnAnt para fazer check-outs, check-ins e todas as coisas entre
  • Ant TAR tarefa para criar o arquivo
  • Ant SCP tarefa de publicá-lo

Você pode salvar as senhas em um arquivo de propriedade separada, se você está preocupado com a segurança.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top