+ Responder ao Tópico



  1. #1
    brunico
    Visitante

    Padrão 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).

  2. #2
    rvgugisch
    Visitante

    Padrão 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
    #