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: 11.264 ]
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
KeepAlive para conexão discada (ou não)
XML de NF-e ou CT-e ou MDF-e - Como validar usando os pacotes de esquemas do Governo
Configurando OpenSSH no Windows Server 2003 para autenticação por chave (sem senha)
Nenhum comentário foi encontrado.
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)
Ativação de som 5.1 e nvidia (1)









