Como usar o comando rsync para copiar arquivos no Ubuntu

How Use Rsync Command Copy Files 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. 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. Usarei o Ubuntu para a demonstração. Mas qualquer distribuição Linux moderna deve funcionar bem. Então vamos começar.







Instalando o rsync:

O rsync já deve estar instalado no Ubuntu. Mas, se não estiver instalado em seu computador por algum motivo, você pode instalá-lo facilmente a partir do repositório de pacotes oficial do Ubuntu com o seguinte comando:



$sudoaptoinstalarrsync-e



Formato do Comando rsync:

O formato básico do comando rsync é,





$opções de rsyncfontedestino
  • fonte pode ser um arquivo, diretório ou caminho de rede.
  • destino pode ser um diretório ou um caminho de rede.
  • O rsync tem muitas opções. Você pode alterar o comportamento do rsync usando essas opções. Veremos algumas das opções mais comuns ao longo do caminho.

Ao usar o rsync, você precisa saber o seguinte:

  • Se você colocar um / após o nome do diretório no fonte de rsync como meus arquivos/ , 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 irá copiar todos os arquivos do diretório para o destino incluindo o diretório.
  • Se você digitar um destino caminho do diretório que não existe, o rsync irá criá-lo automaticamente conforme necessário.

Backup de arquivos e diretórios locais com rsync:

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



Por exemplo, digamos que você tenha alguns arquivos importantes no ~ / Downloads diretório. Agora, você deseja fazer backup de todos os arquivos do ~ / Downloads diretório para o seu pen drive USB / dev / sdb1 montado no diretório / mnt / myusb .

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

$tocar~/Transferências/teste{1..100}

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

$rsync-avzh~/Transferências/ /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 pen drive USB da seguinte maneira:

$rsync-avzh~/Transferências/mnt/myusb

Como você pode ver, todo o diretório é copiado para o pen drive USB.

Novamente, se você quiser copiar todos os arquivos do ~ / Downloads diretório para outro diretório (digamos meusdownloads /) em seu pen drive USB, execute rsync da seguinte maneira:

$rsync-avzh~/Transferências/ /mnt/myusb/meus Downloads

Como você pode ver, os arquivos foram copiados corretamente para o pen drive USB.

Backup de arquivos e diretórios remotos com rsync:

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

Você deve ter um pacote de servidor SSH ( servidor openssh no Ubuntu) e rsync pacote instalado no servidor remoto se você deseja usar rsync para fins de backup de arquivos.

Por exemplo, digamos que você deseja copiar todo o conteúdo (incluindo o diretório) do / www diretório do seu servidor remoto www.example1.com para o seu pen drive USB montado no caminho / mnt / myusb em seu sistema de arquivos local.

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

$rsync-avzhraiz@www.example1.com:/www/mnt/myusb

NOTA: Aqui, raiz é o nome de usuário remoto, www.example1.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 desejar.

Você pode ver a seguinte mensagem se estiver se conectando ao servidor remoto pela primeira vez. Basta digitar sim e então pressione .

Agora, digite a senha do 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 o pen drive USB, como você pode ver na captura de tela abaixo.

Você também pode copiar arquivos do sistema de arquivos local para o servidor remoto com 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 maneira:

$rsync-avzh /mnt/myusb/www/raiz@www.example1.com:/www

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

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

Fazendo backups incrementais com 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 forma, se qualquer arquivo ou diretório do fonte diretório é removido, ele é removido do destino diretório também.

O rsync é uma ótima ferramenta para fazer backups incrementais.

Digamos que você tenha um diretório ~ / nuvem em seu usuário CASA diretório. Agora, você deseja fazer backup incremental do diretório para um pen drive USB montado no caminho / mnt / usb1 em um servidor remoto backup.example.com .

NOTA: Você deve ter servidor openssh e rsync pacotes instalados em seu servidor remoto para que isso funcione.

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

$rsync-avzh --excluir --progresso~/nuvem/@backup.example.com:/mnt/usb1/cópia de segurança

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

O conteúdo do ~ / nuvem diretório deve ser copiado para o pen drive USB no servidor remoto.

Como você pode ver, todos os arquivos são copiados para o pen drive USB montado no servidor de backup remoto.

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

$rm~/nuvem/packages.txt

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

$rsync-avzh --excluir --progresso~/nuvem/@backup.example.com:/mnt/usb1/cópia de segurança

Como você pode ver, o arquivo packages.txt também é removido do pen drive USB montado no servidor de backup remoto.

Para onde ir a seguir:

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

Você pode acessar a página do manual do rsync com o seguinte comando:

$cararsync

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