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.191 ]
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
Como configurar o servidor de correio eletrônico Postfix
Terminal Didático - Shell Script via WEB (PHP + Bootstrap)
Conectando-se à Internet via ADSL com PPPoE no OpenBSD
Automatizando a conexão com Internet via ADSL com PPPoE no OpenBSD
Nenhum comentário foi encontrado.
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
O livro "Linux - Guia do Administrador do Sistema (Rubem E. Ferre... (1)
Como redefinir o diretório Home? (2)
Será possível instalar Linux Mint LMDE em Sony Vaio? (16)
Posso instalar usar o grub sem ter linux instalado, para iniciar o win... (2)
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (6)