Automatando a atualização SVN
-
05-07-2019 - |
Pergunta
Freqüentemente estou sshing em um servidor, mudando para um diretório específico e executando o svn-update
Estou pensando que provavelmente existe uma maneira muito fácil de automatizar isso, para que eu possa simples um subdiretório específico quando executar o script e ele fará login via SSH, CD para o diretório certo e executará o svn-update.
Isso é um trabalho para Capistrano ou um script simples pode fazer o trabalho?
Solução
Parece um trabalho para Cron. Executar Crontab, e adicione uma entrada como sim:
#min hour date month day command 0 * * * * ssh user@host '(cd path/to/working/copy; svn update)'
Você pode precisar configurar autenticação sem senha ssh com ssh-agent para que não solicite.
Editar (por comentários abaixo):
Supondo que você tenha privilégios suficientes para fazê -lo, corra
ssh user@host crontab -e
Em seguida, adicione uma entrada como assim:
#min hour date month day command 0 * * * * (cd path/to/working/copy; svn update)
Você pode ignorar a parte acima da edição, a menos que seu servidor não permita que você use o CRON.
Outras dicas
Talvez você deva se perguntar por que está executando essa ação?
Um servidor de construção como CruiseControl ou Hudson poderia resolver o caso mais geral (de saber quando um commit SVN foi realizado)?
Se você precisar de monitorar em um servidor SVN específico e tiver acesso administrativo a ele, poderá ativar um gancho pós-comprometimento ao servidor, por exemplo, para enviar um email em todos os comprometimentos (ou apenas em alguns tipos específicos de começos) .
Ajudaria, se você pudesse esclarecer a base de sua situação.
O script bash simples fará isso, adicione o comando svn update ao seu arquivo /etc /perfil.
Ver Aqui para Bash Login processamento de scripts.
Se você deseja executá -lo de uma caixa diferente (ou seja, não fazer login), lembre -se de que o SSH não sairá se houver um processo em execução; portanto, convém executar a atualização em segundo plano, com tudo redirecionado para /dev / nulo.