Como posso transferir um arquivo entre dois servidores (source-serverA-serverB) com um único script.

0

Eu tenho 3 servidores linux - o primeiro é uma máquina dev (onde eu compilo meu binário), o segundo é um "jumpbox" que me ajuda a conectar a um "testbed" - que é o lugar onde eu preciso copie meu binário.

Neste momento, estou fazendo algo assim:

1) Copie meu binário de devmachine para jumpbox com scp -r binário abc @ jumpbox: / temp /

2) Entre no jumpbox e copie o binário do jumpbok para o testbed com scp -r binário abc @ testbed: / bin /

Existe alguma maneira de fazer os 2 passos acima através de um único script?

Eu percebo que serei forçado a salvar minhas senhas em um arquivo para que isso funcione, mas estou bem com isso - eu sempre posso usar criptografia.

    
por Chani 25.03.2015 / 08:02

2 respostas

2

A opção mais fácil seria executar uma conexão ssh sem senha via autenticação pubkey . Isso significa que você precisa compartilhar as chaves públicas entre os servidores.

Então você pode simplesmente usar um comando como esse no servidor "fonte":

cat file | ssh user@serverA "ssh user@serverB \"cat > file\""
    
por 25.03.2015 / 08:23
2

você precisa configurar uma senha com menos login, usando a chave pública / privada com ssh.

então, assumindo que os arquivos a serem copiados estão em dir ,

source$ tar cf - dir | ssh servera 'ssh serverb "cd dest ; tar xf - " '

onde

  • source$ é você pronto
  • tar cf - dir tar arquivos no dir para stdin
  • ssh servera conecta você ao servera
  • cd dest ; tar xf - extrair dos arquivos stdin no diretório dest
por 25.03.2015 / 08:23

Tags