Backup de arquivos com rsync
Publicado por Breno Morato Mesquita Sabella (última atualização em 29/05/2013)
[ Hits: 13.633 ]
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
sync_local - backup/restauração local
Backup dinâmico de banco de dados MySQL
BTRFS - Gerenciamento de snapshot por quantidade
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)