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: 144.582 ]

Por: Eduardo Alexandre Gula em 31/01/2008


Programando o cron para realizar o backup



O cron é um serviço do Linux que é carregado durante o processo de boot do sistema. Ele funciona como um agendador de tarefas e permite agendar a execução de comandos e processos de maneira repetitiva ou para uma data específica.

O daemon (uma espécie de programa que executa tarefas em segundo plano) do cron executa os comandos nas datas e horários especificados. A cada minuto, o daemon verifica se há alguma tarefa a ser executada.

Todas as ações do cron são realizadas por base em registros em uma espécie de tabela conhecida como crontab.

Para os familiarizados com o Linux, não há segredos para a configuração do cron via linha de comando.

Para os que possuem menos domínio do Linux, sugiro fortemente que instale o Webmin. Trata-se de uma ferramenta de administração através de interface web que facilita muito a vida do administrador.

Para instalar o Webmin, faça seu download a partir de:
Aos usuários de Debian e Ubuntu, baixe o pacote .deb.

Se seu Linux for um Debian, digite como root:

# dpkg -i webmin_versao-do-webmin-copiado.deb

Se seu Linux for um Ubuntu, digite:

$ sudo dpkg -i webmin_versao-do-webmin-copiado.deb

Caso apresente dependências de outros pacotes, instale os pacotes que solicitar.

Já com o Webmin instalado, acesso pelo navegador o endereço https://192.168.1.11:10000 e digite seu usuário do sistema Linux.

Dentro do Webmin, acesse o menu Sistema > Tarefas agendadas (CRON).

Não remova os agendamentos já existentes! Pode danificar seu Linux.

Apenas clique na opção "Criar nova tarefa agendada".

Na próxima janela, uma sugestão de agendamento seria:

Executar tarefa agendada como: root
Ativo: sim
Descrição: <descreva aqui sua tarefa para que você se lembre>
Executar quando: Horários e datas selecionados abaixo
Minutos: Selecionados 0
Hora: Selecionados 17
Dias: Todos
Meses: Todos
Dias da semana: Todos
Executar em qualquer data: sim

Seu backup agendado está pronto!

Verifique no primeiro backup se os arquivos foram copiados corretamente para o destino e confirme o registro de log do arquivo. Caso esteja tudo ok, nos momentos programados seu backup irá funcionar automaticamente, sem intervenção manual.

Mais informações

Mais informações sobre o rsync em:
http://samba.anu.edu.au/rsync/

Mais informações sobre o Webmin em:
http://www.webmin.com/

Mais informações sobre o CRON em:
http://pt.wikipedia.org/wiki/Crontab
http://www.guiadohardware.net/dicas/agendando-tarefas-rotinas-cron.html

E-mails para [email protected] em caso de dúvidas ou comentários serão bem-vindos!

Página anterior    

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

flock - Gerenciador de lockfiles

cal2svg - brincando com shell script e arquivos vetoriais SVG

Monitorando servidores pelo celular

BackRE - Seu script de backup remoto

Ingressando estações de trabalho Ubuntu no AD com Closed In Directory

  
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