Caminho curto para scp usando o mesmo diretório / arquivo em origem e destino

3

Freqüentemente estou atualizando arquivos de um ambiente de desenvolvimento para um de produção em diferentes servidores para que os caminhos sejam os mesmos em ambos os hosts e se torne um procedimento repetitivo para atualizar um arquivo e indicar o mesmo caminho para o scp parâmetros.

Existe uma maneira de usar a expansão de chaves ou outra técnica com parâmetros scp ? Eu sei que um deles, origem ou destino, deve incluir user@host: no início.

O que estou tentando fazer é algo como:

scp user@{dev-server,production-server}:/path/to/file
    
por altmas5 04.08.2012 / 01:24

2 respostas

5

Eu proponho duas soluções nem todas usando scp:

1. Use .ssh / config para ajudar

Ie: coloque algo assim em seu .ssh / config

Host p
HostName production.domain.com
Host d
HostName development.domain.com

Então você pode encurtar seu comando scp:

scp user@d:/path user@p:/path

2. Use software de controle de código-fonte como git. Então, quando você acabar de depurar e codificar e fazer outras coisas, você faz isso (simplificado):

git add /path/to/my_file
git commit -m "new version and features done"
git push production master

(Apenas configure seu git para usar o ssh)

3. Use qscp, ou quick-scp - um script bash projetado especialmente para sua conveniência:) link Basicamente, obtenha o arquivo qscp e torne-o executável. (e mude os padrões para o seu ambiente).

Será necessário um parâmetro obrigatório e dois parâmetros opcionais. Exemplo:

./qscp file     # it will use defaults
./qscp path/to/dir  dest.server.com # uses default source, but to other dest
./qscp /abs/path/to/file dest.srv.com src.srv.com # takes both dest and source server args

O scrpt deve ser fácil de personalizar para suas necessidades específicas, mas ainda não é extremamente robusto. Você pode ter que ajustar a localização do binário scp, seus arquivos ssh_key ou algo similar.

Que tal as maçãs? :)

    
por 04.08.2012 / 02:35
4

Acho melhor aliasar o comando que você está executando toda vez para reduzir a digitação.

Adicione o comando no arquivo .bashrc do usuário:

alias tx='scp user@{dev-server,production-server}:/path/to/file'

Isso ajudará a reduzir os erros de digitação que podem ocorrer durante a digitação de todo o comando.

Mas eu acho que o jeito que você está fazendo isso não é correto. Como o zladuric disse na segunda maneira, você deve usar algum sistema de controle de versão para manter seu banco de dados de código. Isso permitirá que você reverta para qualquer versão anterior.

    
por 04.08.2012 / 06:13