Como usar o comando rsync para copiar arquivos no Ubuntu

Como usar o comando rsync para copiar arquivos no Ubuntu
rsync é uma ferramenta para copiar arquivos. O RSYNC é usado para copiar arquivos do seu computador para uma máquina remota, de uma máquina remota para o seu computador, de um diretório para outro diretório no mesmo computador, do seu computador para um disco rígido externo ou compartilhamento de rede etc. O RSYNC também pode ser usado para fazer backups incrementais.

Neste artigo, vou mostrar como usar o comando rsync para copiar arquivos e diretórios e fazer backup incremental. Eu estarei usando o Ubuntu para a demonstração. Mas qualquer distribuição moderna do Linux deve funcionar bem. Então vamos começar.

Instalando o RSYNC:

O RSYNC já deve ser instalado no Ubuntu. Mas, se não estiver instalado no seu computador por algum motivo, você poderá instalá -lo facilmente no repositório oficial do pacote do Ubuntu com o seguinte comando:

$ sudo apt install rsync -y

Formato do comando rsync:

O formato básico do comando rsync é,

$ rsync Opções de destino de origem
  • fonte pode ser um arquivo ou um diretório ou um caminho de rede.
  • destino pode ser um diretório ou um caminho de rede.
  • Rsync tem muitas opções. Você pode mudar o comportamento do RSYNC usando essas opções. Vamos dar uma olhada em algumas das opções mais comuns ao longo do caminho.

Quando você usa o RSYNC, você precisa saber as seguintes coisas:

  • Se você colocar um / Após o nome do diretório no fonte de rsync como meus arquivos/, Então isso significa copiar todos os arquivos de dentro do diretório apenas para o destino.
  • Se você não colocar um / Após o nome do diretório no fonte de rsync como meus arquivos, Então o RSYNC copiará todos os arquivos do diretório para o destino incluindo o diretório.
  • Se você digitar um destino Caminho de diretório que não existe, o RSYNC o criará automaticamente conforme necessário.

Backupndo arquivos e diretórios locais com o RSYNC:

Você pode copiar arquivos de um diretório para outro diretório em seu computador muito rapidamente com rsync.

Por exemplo, digamos, você tem alguns arquivos importantes no ~/Downloads diretório. Agora, você deseja fazer backup de todos os arquivos do ~/Downloads diretório para sua unidade de polegar USB /dev/sdb1 montado no diretório /mnt/myusb.

Vamos fazer alguns arquivos fictícios no ~/Downloads diretório.

$ touch ~/downloads/teste 1… 100

Agora, copie todos os arquivos do ~/Downloads diretório para /mnt/myusb diretório com o seguinte comando rsync:

$ rsync -avzh ~/downloads//mnt/myusb

Os arquivos devem ser copiados.

Como você pode ver, os arquivos estão no /mnt/myusb diretório.

Você também pode copiar o todo ~/Downloads Diretório para o seu Phumb Drive USB da seguinte maneira:

$ rsync -avzh ~/downloads/mnt/myusb

Como você pode ver, todo o diretório é copiado para a unidade de polegar USB.

Novamente, se você quisesse copiar todos os arquivos do ~/Downloads diretório para outro diretório (digamos mydownloads/) Em sua unidade de polegar USB, execute o RSYNC da seguinte forma:

$ rsync -avzh ~/downloads//mnt/myusb/mydownloads

Como você pode ver, os arquivos são copiados corretamente para a unidade de polegar USB.

Backup de arquivos e diretórios remotos com o RSYNC:

Com o RSYNC, você pode copiar arquivos e diretórios de um servidor remoto para o sistema de arquivos local ou a unidade de polegar USB para fins de backup. Você também pode copiar arquivos e diretórios do sistema de arquivos local para o seu servidor de backup remoto. O RSYNC usa o SSH para copiar arquivos e diretórios para/para o servidor remoto.

Você deve ter pacote de servidor ssh (OpenSsh-Server no Ubuntu) e rsync Pacote instalado no servidor remoto, se você deseja usar o RSYNC para fins de backup de arquivos.

Por exemplo, digamos, você deseja copiar todo o conteúdo (incluindo o diretório) do /www diretório do seu servidor remoto www.Exemplo 1.com para a sua unidade de polegar USB montada no caminho /mnt/myusb no seu sistema de arquivos local.

Para fazer isso, você pode usar o seguinte comando rsync:

$ rsync -avzh [email protected] 1.com:/www/mnt/myusb

OBSERVAÇÃO: Aqui, raiz é o nome de usuário remoto, www.Exemplo 1.com é o nome DNS do servidor remoto e /www é um caminho de diretório no servidor remoto. Você também pode usar o endereço IP do servidor remoto em vez do nome DNS se quiser.

Você pode ver a seguinte mensagem se estiver se conectando ao servidor remoto pela primeira vez. Apenas digite sim e depois pressione .

Agora, digite a senha para o usuário remoto (no meu caso, é raiz) e pressione .

Todos os arquivos e diretórios dentro do /www diretório, incluindo o diretório /www deve ser copiado para a unidade de polegar USB, como você pode ver na captura de tela abaixo.

Você também pode copiar arquivos do seu sistema de arquivos local para o seu servidor remoto com o RSYNC.

No exemplo anterior, você fez um backup do /www diretório no servidor remoto. Agora, digamos, alguns dos arquivos no servidor remoto estão danificados e você deseja recuperá -los do backup.

Para fazer isso, execute o comando rsync da seguinte forma:

$ rsync -avzh/mnt/myusb/www/[email protected] 1.com:/www

Agora, digite a senha do seu servidor remoto e pressione .

Os arquivos devem ser copiados do sistema de arquivos local para o servidor remoto.

Fazendo backups incrementais com o RSYNC:

Neste tipo de backup, o fonte e destino Os diretórios são mantidos em sincronia. Se algum arquivo for adicionado ao fonte diretório, é adicionado ao destino diretório também. Da mesma maneira, se houver qualquer arquivo ou diretório do fonte O diretório é removido, é removido do destino diretório também.

O RSYNC é uma ótima ferramenta para fazer backup incremental.

Digamos, você tem um diretório ~/nuvem no seu usuário LAR diretório. Agora, você quer fazer backup incremental do diretório para uma unidade de polegar USB montada no caminho /mnt/usb1 Em um servidor remoto cópia de segurança.exemplo.com.

OBSERVAÇÃO: Você deve ter OpenSsh-Server e rsync Pacotes instalados em seu servidor remoto para que isso funcione.

Para fazer backup incremental do ~/nuvem, Execute o seguinte comando:

$ rsync -avzh - -delete --progress ~/ nuvem/ [email protected]:/mnt/usb1/backup

Agora, digite a senha do seu usuário remoto e pressione .

O conteúdo do ~/nuvem O diretório deve ser copiado para a unidade de polegar USB no servidor remoto.

Como você pode ver, todos os arquivos são copiados para a unidade de polegar USB montada no servidor de backup remoto.

Agora, vamos remover um arquivo do sistema de arquivos local e ver o que acontece.

$ rm ~/nuvem/pacotes.TXT

Agora, use o rsync para sincronizar os diretórios novamente com o mesmo comando que antes.

$ rsync -avzh - -delete --progress ~/ nuvem/ [email protected]:/mnt/usb1/backup

Como você pode ver, o arquivo pacotes.TXT também é removido da unidade USB de polegar montada no servidor de backup remoto.

Para onde ir a seguir:

Você pode encontrar mais informações sobre o RSYNC na página do homem do RSYNC. A página do homem do RSYNC tem uma descrição detalhada de todas as opções do RSYNC. Eu recomendo que você verifique isso.

Você pode acessar a página Man do RSYNC com o seguinte comando:

$ MAN RSYNC

Então, é assim que você usa o RSYNC para copiar arquivos e fazer backups incrementais no Ubuntu. Obrigado por ler este artigo.