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.743 ]
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
Incrementando seus scripts com dialog
XML de NF-e ou CT-e ou MDF-e - Como validar usando os pacotes de esquemas do Governo
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
Programa fora de escala na tela do pc (10)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









