quarta-feira, 15 de dezembro de 2010

Operações de backup em fita DAT no Ubuntu server 10.10

Olá comunidade.

Hoje trago uma dica para a criação de backups em fita DAT no Ubuntu Server 10.10.

Primeiramente devemos instalar o pacote mt-st que é o responsável pelas operações nos drives de fita com o comando abaixo:

apt-get install mt-st

Após a instalação já podemos realizar operações em fita conforme exemplos abaixo:

mt -f /dev/st0 rewind - Rebobina a fita.
mt -t /dev/st0 erase - Apaga a fita (Operação lenta).
mt -t /dev/st0 eject - Ejeta a fita.

Para o backup em si utilizamos o tar conforme os exemplos abaixo:

tar -cvf /dev/st0 /dir-origem-dos-dados
tar -cvf /dev/st0 -T /home/usuario/lista-de-arquivos.txt
tar -cvf /dev/st0 /dir-de-origem-dos-dados -X /home/usuario/lista-de-arquivos-excluídos-do-backup.txt

Conforme visto acima a opção -T aponta para um arquivo com a lista do que deve ser salvo, já a opção -X aponta para o arquivo com os arquivos que não devem ser salvos. Para maior dinamismo podemos utilizar expressões regulares nos mesmos.

A melhor maneira de realizar seus backups é através de um script de backup para automatizar o processo. Segue abaixo um exemplo de script de backup.

#!/bin/bash
#Script de backup escrito por PAULO ALEXANDRE SANTOS DE MELO
#Este script pode ser utilizado livremente e modificado uma vez que o nome do autor seja referenciado.

#Definição de variáveis
MT="/bin/mt"
TAR="/bin/tar"
DISPOSITIVO="/dev/st0"
ALVO="-T /opt/backup/alvos -X /opt/backup/excluir"
LOG="/var/log/bkp.log"

#Iniciando o Backup
echo "## Início do backup - `date +%e` de `date +%B` de `date +%Y` ##" >> $LOG
echo "Excluindo informações anteriores armazenadas na fita" >> $LOG
$MT -f $DISPOSITIVO erase
if [ "$?" == "0" ]
then
echo "Fita apagada" >> $LOG
else
echo "Erro na exclusão dos arquivos da fita" >> $LOG
fi

echo "Rebobinando a fita" >> $LOG
$MT -f $DISPOSITIVO rewind
if [ "$?" == "0" ]
then
echo "Posicionamento concluído" >> $LOG
else
echo "Erro no posicionamento" >> $LOG
fi

echo "Iniciando a cópia dos arquivos" >> $LOG
$TAR -cvf $DISPOSITIVO $ALVO
if [ "$?" == "0" ]
then
echo "## Backup concluído ##" >> $LOG
else
echo "Erro no Backup" >> $LOG
fi

echo " " >> $LOG
$MT -f $DISPOSITIVO eject


É isso ai galera, quaisquer dúvidas ou esclarecimentos estou a disposição.

Um grande abraço a todos.