Backup de arquivos com rsync
Publicado por Breno Morato Mesquita Sabella (última atualização em 29/05/2013)
[ Hits: 13.396 ]
Homepage: http://bsabella.com.br
Download 5808.backup_com_rsync.sh
Srs.
Segue script para efetuar backup utilizando rsync e wake-on-LAN.
- Este script liga os servidores, caso estejam desligados.
- Efetua sync dos arquivos.
- Desliga os servidores listados, após execução do sync.
- Utiliza chave RSA para efetuar conexão sem solicitar senha.
#!/bin/bash ############################################################## # Sistema de Backup dos Servidores Locais # # Autor............: Breno Sabella # # Data Criacao.....: 15/05/2013 # # Data Modificado..: 23/05/2013 # # Versao...........: 1.0.0 # # Objetivo # # Efetuar backup dos diretorios dos seguintes servidores # # A, B e C # # - Liga os servidores remotamente # # - Efetua backup utilizando rsync # # - Desliga os servidores # ############################################################## ############################################################## # VARIAVEIS DO SISTEMA # ############################################################## DIR_BACKUP="/mnt/backup/" IP_SERVER_LAN=("192.168.0.1:a" "192.168.0.2:b") EMAIL_PARA="breno.sabella@teste.com.br" CONTADOR=0 LOG="/scripts/log/backup.log" DATA_ATUAL=`date` DATA_BACKUP=`date +%Y%m%d` USUARIO="root" RSYNC_BIN="/usr/bin/rsync" RSYNC_OPTS=" -avzP --delete" COMPACTADO="/mnt/backup/compactado/" MACADDRESS_SERVER_LAN=("00:1E:4F:37:ED:40" "00:22:19:5B:9B:DA") BROADCAST="192.168.0.255" ############################################################## # PROCEDIMENTOS - LIGANDO OS SERVIDORES # ############################################################## echo "" > $LOG echo "" > $LOG echo "Ligando os servidores em --" $DATA_ATUAL >> $LOG echo "" >> $LOG # PERCORRE O VETOR LIGANDO OS SERVIDORES while [ ${CONTADOR} != ${#MACADDRESS_SERVER_LAN[@]} ] do echo "Ligando Servidor --" ${MACADDRESS_SERVER_LAN[$CONTADOR]} >> $LOG /usr/bin/wakeonlan -i ${BROADCAST} ${MACADDRESS_SERVER_LAN[$CONTADOR]} let "CONTADOR = CONTADOR + 1" done echo "" > $LOG echo "Finalizado os processos em --" $DATA_ATUAL >> $LOG echo "" >> $LOG sleep 300 # 5MIN PARA LIGAR OS SERVIDORES ############################################################## # PROCEDIMENTOS - BACKUP DOS SERVIDORES # ############################################################## echo "Iniciando o backup em -- " $DATA_ATUAL >> $LOG echo "" >> $LOG # PERCORRE O VETOR FAZENDO BACKUP DOS SERVIDORES CONTADOR=0 # LIMPANDO A VARIAVEL CONTADOR while [ $CONTADOR != ${#IP_SERVER_LAN[@]} ] do echo "Inicio dos processos no servidor -- " ${IP_SERVER_LAN[$CONTADOR]} >> $LOG IP_SERVER=$(echo ${IP_SERVER_LAN[$CONTADOR]} | cut -f1 -d:) DIR_DESTINO=$(echo ${IP_SERVER_LAN[$CONTADOR]} | cut -f2 -d:) echo "Sincronizando diretó /etc" >> $LOG $RSYNC_BIN $RSYNC_OPTS -e 'ssh -i /root/.ssh/key_c' $USUARIO@$IP_SERVER:/etc $DIR_BACKUP$DIR_DESTINO echo "Sincronizando diretó /scripts" >> $LOG $RSYNC_BIN $RSYNC_OPTS -e 'ssh -i /root/.ssh/key_c' $USUARIO@$IP_SERVER:/scripts $DIR_BACKUP$DIR_DESTINO echo "Sincronizando diretorio /home" >> $LOG $RSYNC_BIN $RSYNC_OPTS -e 'ssh -i /root/.ssh/key_c' $USUARIO@$IP_SERVER:/home $DIR_BACKUP$DIR_DESTINO if [ $DIR_DESTINO == "netuno" ]; then #echo "Sincronizando diretorio www" >> $LOG #$RSYNC_BIN $RSYNC_OPTS -e 'ssh -i /root/.ssh/key_c' $USUARIO@$IP_SERVER:/var/www $DIR_BACKUP$DIR_DESTINO echo "Sincronizando diretorio /mnt/home" >> $LOG $RSYNC_BIN $RSYNC_OPTS -e 'ssh -i /root/.ssh/key_c' $USUARIO@$IP_SERVER:/mnt/home $DIR_BACKUP$DIR_DESTINO echo "Sincronizando diretorio /mnt/home" >> $LOG $RSYNC_BIN $RSYNC_OPTS -e 'ssh -i /root/.ssh/key_c' $USUARIO@$IP_SERVER:/var/www $DIR_BACKUP$DIR_DESTINO fi ssh -i /root/.ssh/key_c $USUARIO@$IP_SERVER sudo poweroff let "CONTADOR = CONTADOR + 1" done echo "" >> $LOG echo "Finalizando o backup em -- " $DATA_ATUAL >> $LOG echo "" >> $LOG ############################################################## # ENVIANDO EMAIL BACKUP DO SISTEMA # ############################################################## cat $LOG | mail -s "Backup do Sistema - Interno" $EMAIL_PARA
Configuração de backup com rsync sem senha
Backups automáticos de rádios Intelbras APC5
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Problema com alias usando locate (6)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (20)
Alguém pode me ajudar porfavor como executar comandos ao iniciar no i3... (1)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba