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.