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.
Parte 3: Explicando o arquivo de backup
Explicando o arquivo de backup:
Na primeira linha há um aviso ao interpretador de comandos que deve ser utilizado o bash:
#!/bin/bash
Armazena o momento de início na variável INICIO, no formato dd/mm/yyyy-hh:mm:ss:
INICIO=`date +%d/%m/%Y-%H:%M:%S`
Armazena na variável LOG qual o arquivo que deve ser gravado um registro do backup, no formato yyyy-mm-dd_nome-do-arquivo.txt:
LOG=/var/log/`date +%Y-%m-%d`_nome-do-arquivo-de-log.txt
Mantendo esse arquivo, pode ser muito útil para que possa verificar se os backups têm sido realizados corretamente.
Cria o início do registro de log no arquivo, gravando um cabeçalho no qual insere a data e hora do início do backup:
echo " " >> $LOG
echo " " >> $LOG
echo "|--------------------------------------------" >> LOG
echo " Sincronização iniciada em $INICIO" >> $LOG
Essa é a linha que realiza o backup de fato. Ela invoca o comando rsync e fornece os parâmetros de quais arquivos copiar e para qual destino. A cada arquivo copiado, uma linha será inserida no arquivo de log. Dessa forma, o administrador pode saber quais arquivos foram copiados no backup de determinado dia.
sudo rsync -Cravzp /pasta-de-origem/ /pasta-de-destino/ >> $LOG
Armazena o momento de término do backup na variável FINAL, no formato:
FINAL=`date +%d/%m/%Y-%H%:M:%S`
Finaliza o arquivo de backup com um rodapé no qual insere a data e hora do término do backup:
echo " Sincronização Finalizada em $FINAL" >> $LOG
echo "|--------------------------------------------" >> $LOG
echo " " >> $LOG
echo " " >> $LOG
Observações: Caso deseje alterar os parâmetros do rsync para a cópia, consulte o manual do rsync com o comando man rsync.
Sugiro criar uma pasta em /var/log com o nome rsync e gravar todos os logs do rsync nessa pasta.
Na primeira linha há um aviso ao interpretador de comandos que deve ser utilizado o bash:
#!/bin/bash
Armazena o momento de início na variável INICIO, no formato dd/mm/yyyy-hh:mm:ss:
INICIO=`date +%d/%m/%Y-%H:%M:%S`
Armazena na variável LOG qual o arquivo que deve ser gravado um registro do backup, no formato yyyy-mm-dd_nome-do-arquivo.txt:
LOG=/var/log/`date +%Y-%m-%d`_nome-do-arquivo-de-log.txt
Mantendo esse arquivo, pode ser muito útil para que possa verificar se os backups têm sido realizados corretamente.
Cria o início do registro de log no arquivo, gravando um cabeçalho no qual insere a data e hora do início do backup:
echo " " >> $LOG
echo " " >> $LOG
echo "|--------------------------------------------" >> LOG
echo " Sincronização iniciada em $INICIO" >> $LOG
Essa é a linha que realiza o backup de fato. Ela invoca o comando rsync e fornece os parâmetros de quais arquivos copiar e para qual destino. A cada arquivo copiado, uma linha será inserida no arquivo de log. Dessa forma, o administrador pode saber quais arquivos foram copiados no backup de determinado dia.
sudo rsync -Cravzp /pasta-de-origem/ /pasta-de-destino/ >> $LOG
Armazena o momento de término do backup na variável FINAL, no formato:
FINAL=`date +%d/%m/%Y-%H%:M:%S`
Finaliza o arquivo de backup com um rodapé no qual insere a data e hora do término do backup:
echo " Sincronização Finalizada em $FINAL" >> $LOG
echo "|--------------------------------------------" >> $LOG
echo " " >> $LOG
echo " " >> $LOG
Observações: Caso deseje alterar os parâmetros do rsync para a cópia, consulte o manual do rsync com o comando man rsync.
Sugiro criar uma pasta em /var/log com o nome rsync e gravar todos os logs do rsync nessa pasta.
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