Android

Como transferir arquivos com o rsync sobre ssh

rsync - Cópia, Sincronização e Backup de arquivos no Linux

rsync - Cópia, Sincronização e Backup de arquivos no Linux

Índice:

Anonim

Quando se trata de transferir arquivos entre sistemas na rede, os usuários de Linux e Unix têm muitas ferramentas à sua disposição.

Os protocolos mais populares para transferência de dados são SSH e FTP. Embora o FTP seja muito popular, sempre prefira usar o SSH, pois é a maneira mais segura de transferir seus arquivos.

Existem ferramentas especializadas para transferência de arquivos via SSH, como scp e sftp mas nenhuma delas possui todos os recursos que o rsync fornece. rsync pode ser usado para espelhar dados, backups incrementais, copiar arquivos entre sistemas e assim por diante.

Neste tutorial, explicaremos como copiar arquivos com o rsync sobre SSH.

Exigências

  • O utilitário rsync deve ser instalado nos sistemas de destino e de origem. Se não estiver instalado, você poderá instalá-lo usando o gerenciador de pacotes da sua distribuição:

    Ubuntu e Debian:

    sudo apt install rsync

    CentOS e Fedora:

    sudo yum install rsync

    Acesso SSH ao computador remoto.

    O usuário executando o comando rsync e o usuário SSH remoto devem ter permissões apropriadas para ler e gravar arquivos.

Usando o rsync para transferir arquivos por SSH

Com o rsync , você pode transferir arquivos e diretórios via SSH de e para servidores remotos.

A sintaxe geral para transferir arquivos com o rsync é a seguinte:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

Onde SRC é o diretório de origem, DEST é o diretório de destino USER é o nome de usuário SSH remoto e HOST é o host SSH remoto ou o Endereço IP.

As versões mais recentes do rsync são configuradas para usar o SSH como shell remoto padrão, para que você possa omitir a opção -e ssh .

Por exemplo, para transferir um único arquivo /opt/file.zip do sistema local para o diretório /var/www/ no sistema remoto com IP 12.12.12.12 você deve executar:

rsync -a /opt/file.zip [email protected]:/var/www/

A opção -a representa o modo de arquivamento, que sincroniza diretórios recursivamente, transfere dispositivos especiais e de bloco, preserva links simbólicos, tempos de modificação, grupo, propriedade e permissões.

Se o arquivo existir no servidor remoto, ele será substituído. Se você deseja salvar o arquivo com um nome diferente, especifique o novo nome:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Para transferir dados de um controle remoto para uma máquina local, use o local remoto como origem e o local local como destino:

rsync -a [email protected]:/var/www/file.zip /opt/

Transferir diretórios com o rsync sobre SSH é o mesmo que transferir arquivos.

É importante saber que o rsync fornece tratamento diferente aos diretórios de origem com uma barra / final. Quando o diretório de origem tem uma barra à direita, o rsync copiará apenas o conteúdo do diretório de origem no diretório de destino. Quando a barra final é omitida, o diretório de origem será copiado dentro do diretório de destino.

Por exemplo, para transferir o diretório local /opt/website/images/ para o diretório /var/www/images/ em uma máquina remota, digite:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Use a opção --delete se desejar sincronizar o diretório local e remoto. Tenha cuidado ao usar esta opção, pois ela excluirá os arquivos no diretório de destino, se eles não existirem no diretório de origem.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Se o SSH no host remoto estiver escutando em uma porta que não seja a padrão 22 , especifique a porta usando a opção -e . Por exemplo, se o SSH estiver escutando na porta 3322 você usaria:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Ao transferir grandes quantidades de dados, é recomendável executar o comando rsync dentro de uma sessão de tela ou usar a opção -P que diz ao rsync para mostrar uma barra de progresso durante a transferência e manter os arquivos parcialmente transferidos:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Conclusão

Mostramos como usar o rsync sobre SSH para copiar e sincronizar arquivos e diretórios.

Você também pode ler como excluir arquivos ou diretórios com o rsync .

Sinta-se livre para deixar um comentário se tiver alguma dúvida.

terminal rsync