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

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 eduardo@alexsite.com.br 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

Monitorando servidores pelo celular

Shell script com PHP

getopts: criando scripts Bash com parâmetros e argumentos personalizáveis

Script com muitas utilidades para arquivos e pastas

Aprendendo a melhorar os seus scripts

  
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 tx@ig.com.br 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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts