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.368 ]
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
Brincando com vetores - complemento
NetProfiler - Um solução para quem passeia por várias redes
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.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)