Upload
kleber-alves-de-souza
View
217
Download
0
Embed Size (px)
Citation preview
8/18/2019 Backup Automatico Com Rsync e Crontabb
1/3
Necessario criar relação de confiança SSH com chaves rsa.
### rsync
## instalar o rsync em ambos os servidores
apt-get update
apt-get install rsync
##criar o arquivo de script e colocar no diretorio do usuario que ira logar no servidor remoto
Exemplo:
touch backup.sh
### Editar o arquivo de script:
vim backup.sh
-----------------------------------------------------------------------------------------
#!/bin/bash
INICIO=`date +%d/%m/%Y-%H:%M:%S`LOG=/var/log/rsync`date +%Y-%m-%d`_nome-do-arquivo-de-log.txt
echo " " >> $LOGecho " " >> $LOGecho "|-----------------------------------------------" >> $LOGecho " Sincronizaç iniciada em $INICIO" >> $LOG
rsync -Cravzp /local-pasta-backup usuario@local:/local-remotoFINAL=`date +%d/%m/%Y-%H%:M:%S`
echo " Sincronizaç Finalizada em $FINAL" >> $LOGecho "|-----------------------------------------------" >> $LOGecho " " >> $LOGecho " " >> $LOG
-----------------------------------------------------------------------------------
##### Salve o arquivo e de permissoes de execussão
chmod 775 backup.sh
chmod +x backup.sh
----------------------------------------------------------------------------------
8/18/2019 Backup Automatico Com Rsync e Crontabb
2/3
#### agendar a tarefa no crontab
Editando o crontab:
# crontab -e
Feito. Precisamos agora adicionar o período (tempo) que o cron deve chamar o nosso script de backup.
A sintaxe do crontab é bastante fácil de se trabalhar. A sintaxe para chamar nosso script deve ficar assim:
mm HH DD MM DS /usr/local/bin/backup.sh
Onde:
mm: minutos HH: horas DD: dia MM: mês DS: dia da semana
/usr/local/bin/backup.sh: tarefa a ser realizadaNeste exemplo, faríamos com que o script seja executado todos os dias as 22hrs. Veja:
00 22 * * * /usr/local/bin/backup.sh
Pronto. Salve o arquivo, e reinicie o cron para que a rotina funcione:
# /etc/init.d/cron restart
Para visualizar os agendamentos feitos (por usuário), use:
# contab -l
Se desejar apagar os agendamentos, digite o comando:
# crontab -r
Existe ainda uma outra maneira de montarmos os agendamentos com o cron. Através dos comandos do crontab, como no exemplo citado acima, os agendamentos são criados apenas para o usuário corrente, ou seja, o usuário que esta digitando o comando. Editando diretamente o arquivo de configuração do crontab, um novo campo é adicionado a sintaxe. Este campo, é o campo usuário. Ele é adicionado para que possamos determinar usuários para cada tarefa ou rotina a ser realizada.
# kedit /etc/crontab
A nova sintaxe ficará assim agora:
mm HH DD MM DS U /usr/local/bin/backup.sh
Onde:
mm: minutos HH: horas
8/18/2019 Backup Automatico Com Rsync e Crontabb
3/3
DD: dia MM: mês DS: dia da semana U: nome do usuário especificado /usr/local/bin/backup.sh: tarefa a ser realizada
Para finalizar, dentro do diretório /etc, existe temos quatro agendamentos pré-definidos:
cron.hourly, cron.daily, cron.weekly e cron.montly.
Onde:
cron.hourly: de hora em hora cron.daily: de dia em dia cron.weekly: de semana em semana cron.montly: de mês em mês
Exemplo: Para que nosso script de backup seja executado diariamente, basta copiarmos o script para /etc/cron.daily
# cp /usr/local/bin/backup.sh /etc/cron/daily
Para finalizar, após copiar o script para o diretório desejado, é necessário reiniciar
daemon do cron, para que as alterações entrem em vigor.# /etc/init.d/cron restart
Você pode verificar mais opções consultando o manual do cron. Boa sorte ;-)
# man cron