Backup de arquivos com rsync
Publicado por Breno Morato Mesquita Sabella (última atualização em 29/05/2013)
[ Hits: 13.814 ]
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
Script de backup MySQL [melhorado]
Script para gravação de BKPs em DVDs-RW
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Linux é a solução para o fim do Windows10? (3)
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (0)
Programa fora de escala na tela do pc (29)









