Backup completo
Publicado por Perfil removido (última atualização em 06/01/2015)
[ Hits: 9.990 ]
Apenas um comentário: o rsync pode fazer backup diretamente via SSH, mas por segurança achei interessante montar as unidades em modo leitura no próprio servidor de backup. Segue o script:
#!/bin/bash
echo "
#########################################################
#########################################################
################### BACKUP SYSTEM #######################
#########################################################
#########################################################
############## by www.linux4sec.com.br ##################
#########################################################
#########################################################
#########################################################
"
#ATENÇÂO!
#
#Este script deve estar na seguinte estrutura:
#Na pasta raiz / dentro de uma pasta denominada backup ( ou seja /backup/ ).
#
#As montagens dos servidores devem ser feitas em MODO LEITURA dentro da pasta:
#/home/servidores/ que deverá ser criada e cada servidor deverá ser montado em sua
#subpasta. Ex: /home/servidores/servidor1 /home/servidores/servidor1 ...
#Pode ser usado para montagem "mount com cifs" para servidores Windows e "mount com sshfs" para servidores Linux.
#
#Este script deve ser posto para execução diária no crontab.
#########################################################
################## CONFIGURACAO #########################
#
#Escreva abaixo seu e-mail completo:
email=seuemail@provedor.com.br
#
#Digite o email de destino aonde será enviado os alertas:
destino=destino@provedor.com.br
#
#Digite abaixo o endereço SMTP de seu provedor:
smtp=smtp.provedor.com.br
#
#Digite a senha de seu e-mail:
senha=suasenha
#
#Digite abaixo o numero de servidores que irá efetuar backup:
numero=2
#
#Digite o numero de dias que os arquivos deletados e logs ficarao guardados:
dellog=60
#
#Digite abaixo o nome das subpastas criadas no /home/servidores/, ( Pastas criadas
#para mapear os servidores). Respeitando letras maiúsculas e minusculas e separe cada
#um com uma vírgula e sem espaços. Ex: servidorweb,servidordados,servidorftp :
ordem=seniorbd
#
#Depois de mapeado as raizes dos servidores a serem efetuado os backups, adicione agora
#as pastas a serem feito os backups e as exeções conforme exemplo abaixo ( sem barra no final ):
#
#backups:
backups="
servidor1/
servidor2/users/
"
#
#exceções:
excessao="
servidor1/tmp
servidor1/etc
"
############# FIM DAS CONFIGURAÇÕES #####################
#INFORMAÇÕES:
#
#O backup será sincornizado na pasta BACKUP/
#
#Os arquivos modificados antigos e deletados ficarão em BACKUP/incremental/l4smod-data/
#
#Os logs ficarão em LOG/
#
#Os arquivos modificados anitgos e deletados serão excluidos de acordo com o número de dias configurado.
########## NAO ALTERE NADA DAQUI PARA BAIXO #############
### CRIANDO PASTAS NECESSARIAS:
cd /backup/
mkdir BACKUP 2>&1&>/dev/null
mkdir LOG 2>&1&>/dev/null
mkdir BACKUP/incremental 2>&1&>/dev/null
### CHECA SE TODAS AS PASTAS ESTAO MONTADAS E SOMENTE LEITURA, CASO HAJA ALGUM PROBLEMA NAO EXECUTA O BACKUP E ENVIA UM EMAIL AVISANDO:
servidores=$numero
novaordem=$(echo -n "$ordem"|sed 's/,/)|(/g')
montalog=$(mount| egrep -E "($novaordem)"|sed 's/ //g'|grep -v "^$")
monta=$(echo -n "$montalog"|grep -v "^$"|wc|cut -c7-8|sed 's/ //g'|grep -v "^$")
if [ "$monta" != "$servidores" ];then
echo "Um dos servidores não está montado, verifique!"
sendemail -f "$email" -t "$destino" -u "Backup L4S - ERRO" -m "Backup NAO efetuado, um dos servidores nao esta mapeado! Existem $monta servidores montados de $servidores - Servidores mapeados: $montalog" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no"
exit
else
touch /home/servidores/*/1.txt 2>&1&>/dev/null
ronly=$(echo $?)
if [ $ronly != "1" ]; then
echo "Uma das unidades montadas está em modo escrita, verifique e deixe-a somente leitura!"
sendemail -f "$email" -t "$destino" -u "Backup L4S - ERRO" -m "Backup NAO efetuado, um dos servidores nao esta somente leitura por favor verifique!" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no"
exit
else
### GERANDO ARQUIVOS DE INCLUSAO OU EXCLUSAO:
echo -n "$backups"|sed 's/ //g'|sed '/^$/d' >/tmp/.dentro.txt
echo -n "$excessao"|sed 's/ //g'|sed '/^$/d' >/tmp/.fora.txt
### INICIANDO O BACKUP:
rsync -vrtpzb --progress --backup-dir=incremental/l4smod-`date +%d_%m_%Y` /home/servidores/ /backup/BACKUP/ --files-from=/tmp/.dentro.txt --exclude-from=/tmp/.fora.txt --delete --log-file=/backup/LOG/`date +%d-%m-%Y`.log
### VERIFICA SE O BACKUP FOI FEITO COM SUCESSO E ENVIA UM EMAIL COM O LOG:
if [ "$?" == "0" ];then
sendemail -f "$email" -t "$destino" -u "Backup L4S - Sucesso" -m "Backup efetuado com sucesso" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no" -a "/backup/LOG/`date +%d-%m-%Y`.log"
else
sendemail -f "$email" -t "$destino" -u "Backup L4S - ERRO" -m "Backup NAO efetuado" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no" -a "/backup/LOG/`date +%d-%m-%Y`.log"
fi
### APAGA OS ARQUIVOS MODIFICADOS E DELETADOS ANTIGOS COM MAIS DE X DIAS ( ESPECIFICAR EM CONFIGURACOES ):
find /backup/BACKUP/incremental/ -name l4smod-* -ctime +$dellog -exec rm -rf {} \;
### APAGA OS LOGS ANTIGOS COM MAIS DE X DIAS ( ESPECIFICAR EM CONFIGURACOES ):
find /backup/LOG/ -name *.log -ctime +$dellog -exec rm -rf {} \;
fi
fi
Script de Backup do Perfil dos Usuários do Sistema em Batch do Windows
PKG Sync v4.0 - utilitário para backup de pacotes DEB baixados
BTRFS - Gerenciamento de snapshot por quantidade
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
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









