Como posso compactar meu arquivo local e copiar para uma máquina remota e descompactar?

1

Eu posso fazer todos os passos:
1, compactar arquivo usando tar
2, copie para a máquina remota usando o scp
3, login remoto usando ssh, precisa de senha
4, descompacte o arquivo
mas, eu quero escrever um script único para fazer o trabalho, qualquer sugestão?

    
por Liu Hao 31.01.2016 / 12:27

1 resposta

4

Por que você não usa rsync para fazer isso? Do computador você quer pegar o arquivo

rsync [email protected]:/home/myuser/mydir/myfile myfile

moverá o arquivo pelos dois computadores, cuidando do transporte. Você pode até mesmo passar recursivamente ( -r ) se quiser sincronizar o diretório inteiro.

Em relação à compactação dos dados, você pode obtê-lo através da opção -z , mas tenha em mente que se sua conexão for rápida e sua CPU estiver lenta (dispositivos móveis) você terá melhores desempenhos apenas transferindo os dados sem compactá-los.

-

Após o comentário abaixo, eu sugeri analisar o tecido ( link ), que lhe dará a capacidade de operar em um servidor por controle remoto.

por exemplo, como modelo, você poderia:

'' '

from fabric.api import run

def kill_and_replace():
    run('killall myserverprocess')
    run('cp mynewfile myoldfile')

'' '

    
por mattions 31.01.2016 / 12:33