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.193 ]
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
Multi-head usando udev e Xnest
Incrementando seus scripts com dialog
XML de NF-e ou CT-e ou MDF-e - Como validar usando os pacotes de esquemas do Governo
Enviando mensagens para usuários da rede
Nenhum comentário foi encontrado.
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
As diferencas entre o clipboard comum e a selecao ativa
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
O que você está ouvindo agora? [2] (243)
Abrir um arquivo URL pelo Clipper (7)
Eu aprendi o segredo das artes! hahaha (0)









