Qual é a maneira correta de automatizar o comando SSH / local?

0

Eu tenho gitolite em uma caixa do Centos 5.5 - quando um repositório é atualizado, eu preciso enviar um comando para o meu dispositivo de rastreamento de bugs para obter os novos comandos. No momento, tenho o seguinte comando em funcionamento:

ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod && exit'

Isso parece um pouco sujo, no entanto. Existe uma maneira melhor de executar essa sincronização?

    
por Nic 12.10.2011 / 03:45

4 respostas

0

Após considerar as opções, decidi modificar o comando (removi o && exit ) e o deixei como é para simplificar.

    
por 14.10.2011 / 20:31
2

Você pode criar scripts usando Esperar , mas isso pode ser complicado demais para algo tão simples. Eu usei isso no passado para fazer login em um interruptor de energia remota e fazer o ciclo de uma determinada porta, então acredito que você provavelmente poderia usá-lo também para este aplicativo.

    
por 12.10.2011 / 15:24
1

Coloque em um Makefile.

sync:
↹ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod && exit'

Em seguida, execute-o.

$ make sync

Observe que é, na verdade, um caractere de tabulação. Veja a documentação do seu editor para saber como inseri-lo (mas Ctrl V Tab pode funcionar).

    
por 12.10.2011 / 03:57
0

Aqui estão duas soluções adicionais, ambas assumem que você está usando o shell bash. A primeira é criar uma função para executar a tarefa, colocar essa função em seu arquivo ~ / .bashrc:

function bugsync() {
    ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'
}

O segundo é criar um alias:

alias bugsync="ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'"

Note que não é necessário especificar o & & sair 'parte do comando.

    
por 12.10.2011 / 17:10

Tags