Após considerar as opções, decidi modificar o comando (removi o && exit
) e o deixei como é para simplificar.
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?
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.
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).
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.