Automatização de backup
Este artigo mostra como automatizar os backup de seus servidores, aqui vou abordar uma situação onde você precisa manter seus backups atualizados e não poderá em horários que não está na empresa. Para isso utilizaremos scripts e agendamentos. Aqui no Viva o Linux isso não é novidade, mas fiz este bem detalhado. Então mãos à obra!
[ Hits: 10.778 ]
Por: Paulo José Maestrello em 06/10/2016
#!/bin/bash
#
#BACKUP E COPIA DE ARQUIVO PARA 3 Locais
#gumball.sh
#Criado em 23/08/2016
#por Paulo J. Maestrello
#
## algumas variaveis encontradas aqui, não são utilizadas neste script, mas as tenho sempre como cabeçalho, pois em outros processos uso, e gostaria que voces ##também tivessem elas.
##Variaveis Globais
AGORA=$(date +%A" "%d/%m/%Y-%HH:%MM" "%:z%Z)
HOJE=$(date +%d%m%Y)
ONTEM=$(date -d 'yesterday' '+%d%m%Y')
AMANHA=$(date -d 'tomorrow' '+%d%m%Y')
ANTEONTEM=$(date -d '48 hours ago' '+%d%m%Y')
CINCOPASSADO=$(date -d '5 days ago' '+%d%m%Y')
QUINZEPASSADO=$(date -d '2 weeks ago' '+%d%m%Y')
MESPASSADO=$(date -d '1 month ago' '+%d%m%Y')
ANOPASSADO=$(date -d '1 year ago' '+%d%m%Y')
LOGFILE="/home/backup/bkplog.txt"
##Variaveis Locais
IDSRV="0001"
SERVIDOR="$HOSTNAME"
IPSERVIDOR="192.168.0.200"
IPSERVIDORBKP="192.168.0.202"
SOURCE="/home/usuarios/Documentos/"
TARGET="/mnt/backup/$SERVIDOR"
RESERVE="/mnt/reserve/$SERVIDOR"
HDEXT="/mnt/hdexterno"
#nomes dos arquivos tar.bz2
ARQU="BKP_$(echo $IDSRV)_$(echo ${SERVIDOR})_${HOJE}.tar.bz2"
ARQONTEM="BKP_$(echo $IDSRV)_$(echo ${SERVIDOR})_${ONTEM}.tar.bz2"
####
#inicio do backup
####
echo " " >>$LOGFILE
echo "+++++++">>$LOGFILE
echo " " >>$LOGFILE
echo "Iniciando Backup do SERVIDOR "$SERVIDOR >>$LOGFILE
tar -cjf $TARGET/$ARQU $SOURCE* >>$LOGFILE
if [ $? -eq 0 ]; then
echo STATUS ='OK' >> $LOGFILE
echo "Compactação ($SERVIDOR - $HOJE) realizado com sucesso" >>$LOGFILE
cd $TARGET
if mount | grep -q "hdexterno" ; then #aqui verifico se o hd externo está montado
echo "HD Externo Montado OK" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
cp $ARQU $HDEXT
else
echo "Aguarde Montando HD Externo" >>$LOGFILE
mount -a
if mount | grep -q "hdexterno" ; then
echo "HD Externo Montado OK" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
cp $ARQU $HDEXT
else
echo "Não foi encontrado HD Externo" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
fi
else
echo STATUS='FAIL' >>$LOGFILE
echo "Compactação ($SERVIDOR - $HOJE) falhou ao executar" >>$LOGFILE
fi
if [ $? -eq 0 ]; then
echo STATUS ='OK' >> $LOGFILE
echo "Backup ($SERVIDOR - $HOJE) realizado com sucesso" >>$LOGFILE
else
echo STATUS='FAIL' >>$LOGFILE
echo "Backup ($SERVIDOR - $HOJE) falhou ao executar" >>$LOGFILE
fi
echo " " >>$LOGFILE
echo "+++++++" >>$LOGFILE
echo " " >>$LOGFILE
exit
#!/bin/bash
#
#BACKUP E COPIA DE ARQUIVO PARA 3 Locais
#darvin.sh
#Criado em 23/08/2016
#por Paulo J. Maestrello
#
## algumas variaveis encontradas aqui, não são utilizadas neste script, mas as tenho sempre como cabeçalho, pois em outros processos uso, e gostaria que voces ##também tivessem elas.
##Variaveis Globais
AGORA=$(date +%A" "%d/%m/%Y-%HH:%MM" "%:z%Z)
HOJE=$(date +%d%m%Y)
ONTEM=$(date -d 'yesterday' '+%d%m%Y')
AMANHA=$(date -d 'tomorrow' '+%d%m%Y')
ANTEONTEM=$(date -d '48 hours ago' '+%d%m%Y')
CINCOPASSADO=$(date -d '5 days ago' '+%d%m%Y')
QUINZEPASSADO=$(date -d '2 weeks ago' '+%d%m%Y')
MESPASSADO=$(date -d '1 month ago' '+%d%m%Y')
ANOPASSADO=$(date -d '1 year ago' '+%d%m%Y')
LOGFILE="/home/backup/bkplog.txt"
##Variaveis Locais
IDSRV="0002"
SERVIDOR="$HOSTNAME"
IPSERVIDOR="192.168.0.201"
IPSERVIDORBKP="192.168.0.202"
SOURCE="/home/usuarios/Documentos/"
TARGET="/mnt/backup/$SERVIDOR"
RESERVE="/mnt/reserve/$SERVIDOR"
HDEXT="/mnt/hdexterno"
#nomes dos arquivos tar.bz2
ARQU="BKP_$(echo $IDSRV)_$(echo ${SERVIDOR})_${HOJE}.tar.bz2"
ARQONTEM="BKP_$(echo $IDSRV)_$(echo ${SERVIDOR})_${ONTEM}.tar.bz2"
####
pg_dump -s bcodedados -f /home/sistemabkp/estrut.sql
pg_dump -a bcodedados -f /home/sistemabkp/dados.sql
pg_dumpall -g > /home/sistemabkp/usuarios.sql
tar -cvzf /home/sistemabkp/$ARQU /home/sistemabkp/*.sql
if [ $? -eq 0 ]; then
echo STATUS ='OK' >> $LOGFILE
echo "Compactação ($SERVIDOR - $HOJE) realizado com sucesso" >>$LOGFILE
cd /home/sistemabkp/
if mount | grep -q "hdexterno" ; then #aqui verifico se o hd externo está montado
echo "HD Externo Montado OK" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
cp $ARQU $HDEXT
vacuumdb -z -d bcodedados -f
rm *.sql
else
echo "Aguarde Montando HD Externo" >>$LOGFILE
mount -a
if mount | grep -q "hdexterno" ; then
echo "HD Externo Montado OK" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
cp $ARQU $HDEXT
vacuumdb -z -d bcodedados -f
rm *.sql
else
echo "Não foi encontrado HD Externo" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
vacuumdb -z -d bcodedados -f
rm *.sql
fi
else
echo STATUS='FAIL' >>$LOGFILE
echo "Compactação ($SERVIDOR - $HOJE) falhou ao executar" >>$LOGFILE
if [ $? -eq 0 ]; then
echo STATUS ='OK' >> $LOGFILE
echo "Backup ($SERVIDOR - $HOJE) realizado com sucesso" >>$LOGFILE
else
echo STATUS='FAIL' >>$LOGFILE
echo "Backup ($SERVIDOR - $HOJE) falhou ao executar" >>$LOGFILE
fi
echo " " >>$LOGFILE
echo "+++++++" >>$LOGFILE
echo " " >>$LOGFILE
exit
#!/bin/bash
#
#BACKUP E COPIA DE ARQUIVO PARA 3 Locais
#gumball.sh
#Criado em 23/08/2016
#por Paulo J. Maestrello
#
## algumas variaveis encontradas aqui, não são utilizadas neste script, mas as tenho sempre como cabeçalho, pois em outros processos uso, e gostaria que voces ##também tivessem elas.
##Variaveis Globais
AGORA=$(date +%A" "%d/%m/%Y-%HH:%MM" "%:z%Z)
HOJE=$(date +%d%m%Y)
ONTEM=$(date -d 'yesterday' '+%d%m%Y')
AMANHA=$(date -d 'tomorrow' '+%d%m%Y')
ANTEONTEM=$(date -d '48 hours ago' '+%d%m%Y')
CINCOPASSADO=$(date -d '5 days ago' '+%d%m%Y')
QUINZEPASSADO=$(date -d '2 weeks ago' '+%d%m%Y')
MESPASSADO=$(date -d '1 month ago' '+%d%m%Y')
ANOPASSADO=$(date -d '1 year ago' '+%d%m%Y')
LOGFILE="/home/backup/bkplog.txt"
##Variaveis Locais
IDSRV="0003"
SERVIDOR="$HOSTNAME"
IPSERVIDOR="192.168.0.202"
IPSERVIDORBKP="192.168.0.202"
SOURCE="/home/usuarios/Documentos/"
TARGET="/mnt/backup/$SERVIDOR"
RESERVE="/mnt/reserve/$SERVIDOR"
HDEXT="/mnt/hdexterno"
#nomes dos arquivos tar.bz2
ARQU="BKP_$(echo $IDSRV)_$(echo ${SERVIDOR})_${HOJE}.tar.bz2"
ARQONTEM="BKP_$(echo $IDSRV)_$(echo ${SERVIDOR})_${ONTEM}.tar.bz2"
####
#inicio do backup
####
echo " " >>$LOGFILE
echo "+++++++">>$LOGFILE
echo " " >>$LOGFILE
echo "Iniciando Backup do SERVIDOR "$SERVIDOR >>$LOGFILE
tar -cjf $TARGET/$ARQU $SOURCE* >>$LOGFILE
if [ $? -eq 0 ]; then
echo STATUS ='OK' >> $LOGFILE
echo "Compactação ($SERVIDOR - $HOJE) realizado com sucesso" >>$LOGFILE
cd $TARGET
if mount | grep -q "hdexterno" ; then #aqui verifico se o hd externo está montado
echo "HD Externo Montado OK" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
cp $ARQU $HDEXT
else
echo "Aguarde Montando HD Externo" >>$LOGFILE
mount -a
if mount | grep -q "hdexterno" ; then
echo "HD Externo Montado OK" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
cp $ARQU $HDEXT
else
echo "Não foi encontrado HD Externo" >>$LOGFILE
cp $ARQU $BACKUP
cp $ARQU $RESERVE
fi
else
echo STATUS='FAIL' >>$LOGFILE
echo "Compactação ($SERVIDOR - $HOJE) falhou ao executar" >>$LOGFILE
fi
if [ $? -eq 0 ]; then
echo STATUS ='OK' >> $LOGFILE
echo "Backup ($SERVIDOR - $HOJE) realizado com sucesso" >>$LOGFILE
else
echo STATUS='FAIL' >>$LOGFILE
echo "Backup ($SERVIDOR - $HOJE) falhou ao executar" >>$LOGFILE
fi
echo " " >>$LOGFILE
echo "+++++++" >>$LOGFILE
echo " " >>$LOGFILE
exit
Redundância de links - Mon + Shell Script
Incrementando seus scripts com dialog
Automatizando a conexão com Internet via ADSL com PPPoE no OpenBSD
Colocado o "Motion" na inicialização do Ubuntu 7.04
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
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
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (4)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









