Como programar backup com rsync e cron de maneira rápida e simples

Nesse tutorial você aprenderá uma forma rápida e simples de como criar um backup automatizado através do rsync, acionado pelo cron. Utilizo em meu servidor esse pequeno script de backup. Ele realiza o backup em um momento pré-programado pelo cron em uma pasta que desejar, podendo ser um outro disco no servidor.

[ Hits: 141.305 ]

Por: Eduardo Alexandre Gula em 31/01/2008


Porque usar o rsync



Simplesmente porque ele é um software específico para realização de cópias, funciona de maneira a acelerar as transferências ao copiar as diferenças entre 2 arquivos, ao invés de copiar o arquivo inteiro todas as vezes.

Isso mesmo. Ele consegue identificar quais arquivos foram alterados e o administrador pode optar por copiar somente os arquivos novos ou modificados e não necessariamente todos os arquivos, o que tornaria o processo de backup demorado de maneira desnecessária.

Esse recurso pode apresentar grande vantagem, principalmente para backups diários de grande quantidade de arquivos.

Outro grande benefício é que o rsync preserva as informações sobre permissões e propriedade dos arquivos e diretórios, inclusive de links simbólicos.

Instalando o rsync

O primeiro passo é instalar o rsync, caso você ainda não o possua. Se você utiliza Debian, logado como root digite:

# apt-get install rsync

Se você utiliza Ubuntu, digite:

$ sudo apt-get install rsync

Somente para confirmar se seu rsync está funcionando normalmente, digite na linha de comando:

$ rsync

Caso apareçam informações de help do rsync é porque foi instalado corretamente.

    Próxima página

Páginas do artigo
   1. Porque usar o rsync
   2. Configurando o arquivo de backup
   3. Explicando o arquivo de backup
   4. Programando o cron para realizar o backup
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Receba seu IP externo via e-mail ou ensine o bash a ler e enviar e-mails

Monitorando servidores pelo celular

Aprendendo a melhorar os seus scripts

Script com muitas utilidades para arquivos e pastas

Conheça o projeto BASHSRC

  
Comentários
[1] Comentário enviado por renata_paiva em 31/01/2008 - 10:54h

Ola,

Gostei muito do artigo, mais queria saber se é possivel e como fazer no seu script.

Estava vendo nessa linha

rsync -Cravzp /pasta-de-origem/ /pasta-de-destino/

Que ele manda de uma pasta para outra.

Tenho uma maquina 192.168.0.1 que é onde todo mundo salva seus documentos e tenho outra maquina 192.168.0.2 que gostaria de mandar os backup pelo rsync

Como posso fazer isso ?

Sei que no ip final .1 rodaria o rsync , mais teria como mandar por scp os backups ?

Obrigada

[2] Comentário enviado por dockism em 31/01/2008 - 16:25h

Renata,

Dá uma olhada aqui, dai você pode encrementar essa linha

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=338&pagina=3

[3] Comentário enviado por fdmarp em 21/03/2009 - 13:07h

Legal. Valeu mesmo

[4] Comentário enviado por [email protected] em 08/07/2009 - 00:19h

Olá tudo bem,criei essas regras para facilitar um pouco a configuração do cron ...

Espero poder ajudar ....



1) Criar arquivo de backup no diretório desejado;
2) Dar permissão total ao arquivo;
3) Instalar o rsync pelo console (#aptitude install rsync);
4) Editar o arquivo "cron" pelo console (#vim /etc/crontab) e adicionar a linha "*/3 * * * * root /usr/local/bin/backup";
5) Salve o arquivo "Esc,:x";
6) Abrir o console e digite "#gedit /usr/local/bin/nome-do-arquivo (No meu caso coloquei nesse diretório o arquivo de nome backup)
7) Dentro desse arquivo que você criou digite as seguintes linhas:

#!/bin/bash

INICIO=`date +%d/%m/%Y-%H:%M:%S`
LOG=/diretório-do-arquivo-de-backup/`date +%Y-%m-%d`_nome-do-arquivo-de-backup (No meu caso ficou assim "/usr/local/bin/backup")

echo " " >> $LOG
echo " " >> $LOG
echo "|-----------------------------------------------" >> $LOG
echo " Sincronização iniciada em $INICIO" >> $LOG


sudo rsync -Cravzp /diretório-de-origem/ /diretório-de-destino/ >> $LOG
FINAL=`date +%d/%m/%Y-%H%:M:%S`


echo " Sincronização Finalizada em $FINAL" >> $LOG
echo "|-----------------------------------------------" >> $LOG
echo " " >> $LOG
echo " " >> $LOG

8) Dar permissão de executável o arquivo de backup:

chmod +x nome-do-arquivo (No meu caso backup)

9) Abrir o console e reiniciar o serviço;

"# /etc/init.d/cron restart"

Obs: Eu criei esse script para que seja executado o backup a cada 3 minutos .

Obrigado e Espero ter ajudado....


E viva o Linux :)

[5] Comentário enviado por rwinfogames em 17/03/2010 - 15:41h

Gente, gostaria de saber como faço para instalar o rsync no linux fedora 8.
baixei o rsync-3.0.7.tar.gz, extrai ele , mas nao consigo instalar ou compilar com esses comandos informados acima.
Alguem pode me ajudar?
t+

[6] Comentário enviado por jacksonsantana em 01/08/2014 - 11:02h

bom dia, preciso de uma sugestao!

Uso Rsync para backup, até então tudo ok.
Na otimização de um script... precisei do --include, mas nao funcionou no modo backup.

Backup do diretorio compartilhado, para outro local...
onde aqui nesse comando, ele sincroniza tudo, e salva em pastas separadas as modificacoes em arquivos.

rsync --backup --backup=$DATA -a /dados_cliente /dados_bkpeados

eu uso o seguinte comando para sincronizar o diretorio com o hd externo.
rsync -a /dados_bkpeados /hd_montado.


Agora, preciso usar o include...que é um arquivo, com varios diretorios diferentes.
nao quero e nem tem a necessidade de clonar linhas do mesmo comando.
ou seja, melhorando o primeiro comando acima, mas que nao é somente um diretorio de dados, e sim, vários.

tentei assim:

rsync --backup --backup=$DATA --include --include-from=/root/diretorios.list /dados_bkpeados

teria alguma sugestao amigo?

[7] Comentário enviado por Terkoyz em 23/02/2016 - 11:34h

Artigo muito bem feito, foi de grande ajuda para um novato como eu, parabéns pelo artigo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts