HowTo: Como copiar arquivos de uma máquina para outra no Linux?

Muito usado, principalmente quando se esta realizando atualização e/ou migração de servidores. Pense na necessidade de copiar arquivos de configuração de uma máquina que já tenha os serviços funcionando, para uma nova máquina que você esteja montando.

A maneira mais simples de fazer isso é utilizar o protocolo SCP – Secure Copy. É o meio mais seguro para transferir arquivos entre um host local e um remoto ou entre dois hosts remotos, usando o protocolo SSH.

scp ArquivoFonte usuário@host:diretório/ArquivoAlvo
scp usuário@host:diretório/ArquivoFonte ArquivoAlvo

Por exemplo, digamos que queremos copiar o arquivo httpd.conf, que se encontra em em uma máquina local (mesmo que seja acessada via Putty, por exemplo), para uma outra máquina da rede chamada intranet, dentro do diretório /tmp, faríamos assim:

scp /etc/httpd/conf/httpd.conf root@intranet:/tmp

Vai ser solicitada a senha do usuário root da máquina intranet, e automaticamente após digitar a senha, a transferência se completará. Simples assim.

Se fizermos assim:

scp arquivo usuario@ip_ou_nome_da_maquina_remota:

– Vai copiar o arquivo para o diretório home do usuário na máquina remota;
– Não esqueça dos “:” no final;
– No nome do arquivo você pode utilizar “*”, expressões regulares, etc…

Caso você precise copiar um diretório inteiro, use o “-r”:

scp -r diretório usuario@ip_ou_nome_da_maquina_remota:

– O “-r” tem que ficar logo após o scp para funcionar.

No sentido contrário (remoto para local) é só inverter:

scp usuario@ip_ou_nome_da_maquina_remota:arquivo

– Copia o arquivo da máquina remota para o diretório local. Aqui também
vale lembrar que o usuário precisa ter direito de leitura neste arquivo da máquina destino.

IMPORTANTE: o scp não avisa se o arquivo já existir no destino.
Simplesmente sobreescreve. Fique atento a isso !

Espero que possa ser útil pra você também…

Fonte: http://www.linein.org/blog/2009/01/27/copy-files-between-two-webservers-using-linux-scp/

5 thoughts to “HowTo: Como copiar arquivos de uma máquina para outra no Linux?”

  1. Use -P, você pode ver no próprio manual:

    :~$ scp –help
    usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
    [-l limit] [-o ssh_option] [-P port] [-S program]

  2. importante acrescentar -rp para cópia recursiva e criação de diretórios. Quando a porta não é a padrão 22 e vc informa o número da porta, no meu não funciona [opensuse 11.2].

  3. Eu prefiro o rsync pois se a copia parar ele pode continuar, sincroniza bit a bit

    rsync -avz ./backup usuario@ipdamaquina:/home/fulano/

    Caso tenha a barra no final ele copia apenas o conteúdo
    caso não tenha ele copia a pasta toda, aliás isto vale também para o scp

    Valeu!

Leave a Reply

Your email address will not be published. Required fields are marked *