- backup em fita
+ Responder ao Tópico
-
backup em fita
Ola ,
gostaria de saber se tem a possibilidade de os backups de todos dias serem jogados diariamente na numa fita(91GB), sem apagar os anteriores, como se fossem diretórios para cada dia na fita. (Apenas sobrescrever backups de semana em semana).
-
Tem sim
Aqui na empresa a gente usa o TAR numa fita DLT para fazer os backups.
O processo aqui é o seguinte:
* Segunda-feira é feito o backup FULL
* Terça a sábado é feito incremental.
Cada um dos backups gera uma posição na fita.
O de segundo é a posição 0 (zero)
O de terça é a posição 1 e assim até sábado (que é a 5)
Acredito que o script esteja mais ou menos documentado e seja de fácil entendimento! Qualquer coisa entre em contato direto comigo (rvgugisch AT ig PONTO com PONTO br!
Eu o utiliza aqui há mais de ano sem problemas! Coloquei o mesmo no cron para rodar todos os dias às 23:55 horas!
Se tiver alguma alteração legal, me envie, vamos melhorar!!!
Segue abaixo o script utilizado! Pode ver se te resolve o problema!
**********************************************************
#!/bin/sh
#
######################################################################
#
# Script de backup em fita com TAR
#
# Verificar as variaveis:
# SERVIDOR - nome do servidor a que se refere o backup
# DIRETORIO - diretorio incial do backup
#
######################################################################
#echo "Ajuste das variaveis a serem utilizadas"
SERVIDOR="Servidor 3 - Dados" # Servidor a que se refero o backup
DIRETORIO="/home" # Diretorio inicial do backup
DOW=`date +%w` # Dia da Semana
DATE=`date +%D` # Data atual
DAY=`date +%A` # Dia do Mes
INICIO=`date +%A-%T` # Data/Hora de inicio
DEVICE="/dev/st0" # Dispositivo para rebobinar a unidade
NDEVICE="/dev/nst0" # Dispositivo para retorno do backup
REWIND="mt -f $DEVICE rewind" # Rebobinar a fita
EJECT="mt -f $DEVICE eject" # Ejetar a fita
EOD="mt -f $NDEVICE eod" # Vai para final da fita
FSF="mt -f $NDEVICE fsf" # Vai para uma marca da fita
#
# Como nao tenho o sendmail no meu server nao posso mais
# utilizar ele para mandar e-mails, por isso nao uso mais a variavel
# abaixo
# Lista de usuarios que receberao e-mails
MAILLIST="[email protected], \
[email protected], \
[email protected]"
# se dia da semana for 1 entao e segunda-feira
# Backup completo
if [ $DOW = "1" ]
then
#
#echo " - Rebobinar a fita"
$REWIND
#echo " - cria um arquivo para controle do ultimo backup completo realizado"
echo $DATE > /tmp/.LASTFULL
#echo " - Criar arquivos: CORPO.TXT (corpo do e-mail) e "
#echo " BACKUP.TXT (anexo do e-mail)"
echo $SERVIDOR > /tmp/corpo.txt
echo $SERVIDOR > /tmp/backup.txt
echo "==============================================================" >> /tmp/corpo.txt
echo "==============================================================" >> /tmp/backup.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/backup.txt
echo "Backup Completo - ${DAY} / ${INICIO}" >> /tmp/corpo.txt
echo "Backup Completo - ${DAY} / ${INICIO}" >> /tmp/backup.txt
echo "--------------------------------------------------------------" >> /tmp/corpo.txt
echo "--------------------------------------------------------------" >> /tmp/backup.txt
#echo " - cria o backup em fita incluindo no arquivo backup.txt os arquivos"
#echo " incluidos no backup"
#tar -cvvf $NDEVICE /ibratec >> /tmp/backup.txt
tar -cvvf $NDEVICE $DIRETORIO >> /tmp/backup.txt
#echo " - rebobina a fita"
$REWIND
#echo " - Ajusta a fita para o backup 0"
$FSF 0
#echo " - Inclui informacoes de verificacao dentro do arquivo backup.txt"
echo " " >> /tmp/backup.txt
echo " " >> /tmp/backup.txt
echo " " >> /tmp/backup.txt
echo "--------------------------------------------------------------" >> /tmp/backup.txt
echo " - Verificando o backup de ${DAY}" >> /tmp/backup.txt
FINAL=`date` # Data do inicio da verificacao
echo " iniciado em ${FINAL}" >> /tmp/backup.txt
#echo " - Compara entre a gravacao e os arquivos originais"
tar -dvf $NDEVICE >> /tmp/backup.txt
FINAL=`date` # Data de termino da verificacao
echo " finalizado em ${FINAL}" >> /tmp/backup.txt
#echo " - rebobina a fita"
$REWIND
#echo " - copia o arquivo de controle da ultima copia completa"
cp /tmp/.LASTFULL /etc/.LASTFULL
cp /tmp/.LASTFULL /etc/.LASTINC
#echo " - Concui as informacoes nos arquivos corpo.txt e backup.txt"
FINAL=`date` # Data de termino do backup
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/backup.txt
echo "----------------------------------------------------" >> /tmp/corpo.txt
echo "----------------------------------------------------" >> /tmp/backup.txt
echo "Backup Completo finalizado em ${DAY} as ${FINAL}" >> /tmp/corpo.txt
echo "Backup Completo finalizado em ${DAY} as ${FINAL}" > /tmp/backup.txt
#echo " - compacta o arquivo backup.txt"
gzip /tmp/backup.txt
# Envia o antigo de e-mail
# se tiver o sendmail instalado na maquina pode usar este comando
#mail $MAILLIST -s "Backup Completo" < /tmp/backup.txt.gz
#echo " - envia por e-mail SEM arquivo de LOG"
metasend -b -F [email protected] \
-s "${SERVIDOR} - Backup Completo - ${DATE} - ${DAY}" \
-t [email protected] \
-e quoted-printable \
-m 'text/plain; charset="ISO-8859-1"' \
-f /tmp/corpo.txt
#echo " - envia por e-mail COM arquivo de LOG"
metasend -b -F [email protected] \
-s "${SERVIDOR} - Backup Completo - ${DATE} - ${DAY}" \
-t [email protected] \
-e quoted-printable \
-m 'text/plain; charset="ISO-8859-1"' \
-f /tmp/corpo.txt \
-n \
-e base64 \
-m 'application/x-gzip; name="backup.txt.gz"' \
-f /tmp/backup.txt.gz \
-D backup.txt.gz \
-S 100000000
else
#echo "* OUTROS DIAS"
if [ $DOW <> 0 ]
then
#echo " - para o final da fita"
$EOD
#echo " - cria um arquivo para controle do ultimo backup incremental realizado"
echo $DATE > /tmp/.LASTINC
#echo " - Criar arquivos: CORPO.TXT (corpo do e-mail) e "
#echo " BACKUP.TXT (anexo do e-mail)"
echo $SERVIDOR > /tmp/corpo.txt
echo $SERVIDOR > /tmp/backup.txt
echo "==============================================================" >> /tmp/corpo.txt
echo "==============================================================" >> /tmp/backup.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/backup.txt
echo "Backup Incremental" >> /tmp/corpo.txt
echo " ${DAY} / ${INICIO}" >> /tmp/corpo.txt
echo "Backup Incremental" >> /tmp/backup.txt
echo " ${DAY} / ${INICIO}" >> /tmp/backup.txt
echo "--------------------------------------------------------------" >> /tmp/corpo.txt
echo "--------------------------------------------------------------" >> /tmp/backup.txt
#echo " - cria o backup em fita incluindo no arquivo backup.txt os arquivos"
#echo " incluidos no backup"
#tar -cvvf $NDEVICE --newer `cat /etc/.LASTINC` /Ibratec >> /tmp/backup.txt
tar -cvvf $NDEVICE --newer `cat /etc/.LASTINC` $DIRETORIO >> /tmp/backup.txt
#echo " - rebobina a fita"
$REWIND
#echo " - Ajusta a fita para o backup atual"
$FSF `expr $DOW - 1`
#echo " - Inclui informacoes de verificacao dentro do arquivo backup.txt"
echo " " >> /tmp/backup.txt
echo " " >> /tmp/backup.txt
echo " " >> /tmp/backup.txt
echo "--------------------------------------------------------------" >> /tmp/backup.txt
echo " - Verificando o backup de ${DAY}" >> /tmp/backup.txt
FINAL=`date` # Data do inicio da verificacao
echo " iniciado em ${FINAL}" >> /tmp/backup.txt
#echo " - Compara entre a gravacao e os arquivos originais"
tar -dvf $NDEVICE >> /tmp/backup.txt
FINAL=`date` # Data de termino da verificacao
echo " finalizado em ${FINAL}" >> /tmp/backup.txt
#echo " - rebobina a fita"
$REWIND
#echo " - copia o arquivo de controle da ultima copia completa"
cp /tmp/.LASTINC /etc/.LASTINC
#echo " - Concui as informacoes nos arquivos corpo.txt e backup.txt"
FINAL=`date` # Data de termino do backup
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/backup.txt
echo "--------------------------------------------------------------" >> /tmp/corpo.txt
echo "--------------------------------------------------------------" >> /tmp/backup.txt
echo "Backup Incremental finalizado em:" >> /tmp/corpo.txt
echo " ${DAY} as ${FINAL}" >> /tmp/corpo.txt
echo "Backup Incremental finalizado em:" >> /tmp/backup.txt
echo " ${DAY} as ${FINAL}" >> /tmp/backup.txt
echo "--------------------------------------------------------------" >> /tmp/corpo.txt
echo "--------------------------------------------------------------" >> /tmp/backup.txt
#echo " - compacta o arquivo backup.txt"
gzip /tmp/backup.txt
# Envia o antigo de e-mail - ver comantarios do comando
# acima (segunda feira
#mail $MAILLIST -s "Backup Incremental" < /tmp/backup.txt.gz
#echo " - envia por e-mail"
metasend -b -F [email protected] \
-s "${SERVIDOR} - Backup Incremental - ${DATE} - ${DAY}" \
-t [email protected] \
-e quoted-printable \
-m 'text/plain; charset="ISO-8859-1"' \
-f /tmp/corpo.txt
metasend -b -F [email protected] \
-s "${SERVIDOR} - Backup Incremental - ${DATE} - ${DAY}" \
-t [email protected] \
-e quoted-printable \
-m 'text/plain; charset="ISO-8859-1"' \
-f /tmp/corpo.txt \
-n \
-e base64 \
-m 'application/x-gzip; name="backup.txt.gz"' \
-f /tmp/backup.txt.gz \
-D backup.txt.gz \
-S 100000000
fi
fi
# Se for sabado, enviar e-mail para trocar a fita
if [ $DOW = "6" ]
then
#echo " "
#echo " "
#echo " "
#echo "* TROCA DE FITA"
#echo " - Cria o arquivo corpo.txt para inserir no e-mail de troca da fita"
echo $SERVIDOR > /tmp/corpo.txt
echo "==============================================================" >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo "O Backup semanal foi terminado em:" >> /tmp/corpo.txt
echo " ${DAY} / ${INICIO}!" >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo "Favor trocar a fita" >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo "Grato" >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
echo "Administrador de Backups" >> /tmp/corpo.txt
echo "[email protected]" >> /tmp/corpo.txt
echo " " >> /tmp/corpo.txt
#echo " - Se for sabado entao ejetar a fita enviar e-mail para TROCAR A FITA"
$EJECT
#echo " - Envio de e-mail"
metasend -b -F [email protected] \
-s "Backup Semanal Finalizado $SERVIDOR - TROCAR A FITA" \
-t [email protected] \
-e quoted-printable \
-m 'text/plain; charset="ISO-8859-1"' \
-f /tmp/corpo.txt
fi
#echo " "
#echo " "
#echo "* Apagar os arquivos temporarios gerados"
rm -f /tmp/corpo.txt
rm -f /tmp/backup.txt.gz
#
#
# FIM
#