Backup usando rsync
e scp
1. Por que backup é importante?
Hoje vamos falar sobre uma das tarefas mais importantes para todo mundo que trabalha no mundo de TI e programação — fazer backup dos dados. Se você já perdeu dados importantes por causa de uma falha no disco ou erro, sabe o quanto isso é crítico. E se nunca perdeu — estamos aqui pra garantir que você não passe por isso!
Imagina só: você trabalhou em um projeto por meses, e aí, num belo dia, seu disco rígido decide dar um show e parar de funcionar. Pois é, é tão frustrante quanto esquecer de adicionar um ponto e vírgula no final de uma query SQL, só que mil vezes pior. Sistemas são falhos, pessoas cometem erros, e arquivos se perdem. Fazer backup é a forma de se preparar com antecedência pra essas surpresas desagradáveis.
No Linux, existem várias ferramentas poderosas pra fazer backup. Hoje vamos conhecer duas delas: rsync
e scp
.
2. O comando rsync
: ferramenta rápida e inteligente para copiar dados
rsync
— é uma das ferramentas mais populares para copiar e sincronizar dados. Sua principal vantagem é a rapidez e eficiência. Em vez de copiar tudo, rsync
copia apenas os arquivos que foram modificados. Isso o torna ideal para backups regulares de grandes volumes de dados.
Sintaxe do rsync
Aqui está o formato básico do comando:
rsync [opções] origem destino
Onde:
origem
— o caminho para o arquivo ou diretório que você quer copiar.destino
— para onde você vai enviar esses dados.
Principais opções e suas funções
Aqui estão algumas das opções mais usadas:
-a
(archive): inclui a cópia de todos os metadados (permissões, timestamps, etc.).-v
(verbose): ativa a saída detalhada para que você possa ver o que está acontecendo.--progress
: mostra o progresso da cópia (super útil quando está copiando arquivos grandes).--delete
: remove no destino os arquivos que não estão mais na origem. Útil para sincronização completa.-z
(compress): comprime os dados antes da transferência, acelerando o processo (particularmente importante em operações pela rede).
Exemplo: copia de dados locais
Crie o diretório /backup
para armazenar os backups.
mkdir /backup
Copie todo o conteúdo do diretório /home
para /backup
:
rsync -av /home /backup
Vamos entender este exemplo:
-a
mantém a estrutura e permissões dos arquivos.-v
dá informações sobre o andamento do processo.
Se você rodar o comando novamente, ele só vai copiar arquivos novos ou modificados.
Exemplo: backup remoto
Agora suponha que você quer enviar o backup para um servidor remoto. Para isso, o rsync
suporta o uso de SSH.
rsync -av /backup user@remote_server:/remote_backup
Onde:
user
— o nome do usuário no servidor remoto.remote_server
— o endereço do seu servidor remoto (por exemplo, endereço IP ou nome de domínio)./remote_backup
— o caminho no servidor onde você quer salvar os dados.
Se você tiver uma chave SSH para autenticação, a transferência será ainda mais fácil (e segura).
3. Comando scp
: simples e eficiente
scp
(Secure Copy Protocol) — é uma ferramenta para copiar arquivos entre uma máquina local e uma remota. Ele é um pouco mais simples que o rsync
, e é ideal para casos em que uma sincronização completa não é necessária.
Sintaxe do scp
Assim é o formato básico do comando:
scp [opções] origem destino
Onde:
origem
— o caminho para o arquivo que você quer copiar.destino
— o endereço para onde ele precisa ser enviado.
Principais opções e suas funções
Algumas opções úteis:
-r
: cópia recursiva para pastas.-C
: compacta os arquivos antes da transferência.-P
: especifica a porta SSH, se ela for diferente da padrão (22).
Exemplo: copiando um arquivo para uma máquina remota
Você quer enviar arquivos do seu computador local para um servidor. Digamos que o arquivo se chama document.txt
.
scp document.txt user@remote_server:/remote_folder
Se o arquivo estiver na pasta /home/user/documents
, o comando será assim:
scp /home/user/documents/document.txt user@remote_server:/remote_folder
Agora o arquivo estará disponível na máquina remota na pasta /remote_folder
.
Exemplo: copiando arquivos do servidor para a máquina local
O processo funciona no sentido contrário:
scp user@remote_server:/remote_folder/document.txt /home/user/documents
Agora o arquivo document.txt
estará na sua pasta local.
4. Diferenças entre rsync
e scp
Embora ambos os comandos permitam copiar arquivos, eles têm suas peculiaridades.
Característica | rsync | scp |
---|---|---|
Velocidade | Somente dados alterados, mais rápido para grandes volumes | Copia tudo, mesmo se o arquivo não mudou |
Sincronização | Suporte total a sincronização | Não suporta sincronização |
Compressão de dados | Tem -z |
Tem -C |
Facilidade de uso | Mais complicado de configurar | Interface simples |
Então, se você só precisa transferir um arquivo rapidamente — use scp
. Se estamos falando de sincronizações regulares e grandes volumes de dados — com certeza rsync
.
5. Exemplo real: configurando um backup
Aqui vai um exercício prático: você quer configurar todo o processo de backup do seu projeto pra um servidor remoto.
Vamos supor que seus arquivos do projeto estão na pasta
/home/user/project
. Você quer que eles sejam salvos no servidorbackup.server.com
na pasta/backups/project
.Pra que a cópia seja mais rápida, a gente vai usar o
rsync
.
Configurando o script de backup
Crie um arquivo chamado backup.sh
:
#!/bin/bash
SOURCE="/home/user/project"
DESTINATION="user@backup.server.com:/backups/project"
# Realizando o backup com rsync
rsync -av --delete "$SOURCE" "$DESTINATION"
# Exibindo uma mensagem de conclusão
echo "Backup concluído!"
Deixe o arquivo executável:
chmod +x backup.sh
Agora você pode rodar esse script manualmente:
./backup.sh
Ou adicionar ele no cron
pra rodar automaticamente (a gente vai falar sobre cron mais pra frente no curso).
6. Erros típicos e como evitá-los
Caminhos errados na linha de comando. Se você indicar um caminho incorreto para os arquivos,
rsync
ouscp
não vão copiar nada. Use os comandosls
oupwd
pra garantir que os caminhos estão certos.Falta de chave de autenticação. Se você estiver usando SSH mas não configurou a chave, vai precisar digitar a senha toda hora. Configure suas chaves SSH pra facilitar o processo.
Interrupção no backup. Se a rede for instável, o
rsync
vai continuar a transferência na próxima execução. Já comscp
, você terá que começar tudo de novo.
Com o rsync
e scp
você pode copiar e sincronizar seus dados de forma confiável, tanto no computador local quanto em servidores remotos. Essas ferramentas são seus parceiros confiáveis quando o assunto é proteger arquivos importantes.
GO TO FULL VERSION