Ajuda com o comando mt ( Manipular fitas ) [RESOLVIDO]

1. Ajuda com o comando mt ( Manipular fitas ) [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 28/04/2015 - 12:00h

Oi galera, não sei inglês e tentei traduzir o man-page no comando mt e não entendi nada, to precisando muito da ajuda de vcs.

Diariamente faço numa máquina linux com drive de fita scsi, o backup de uma pasta na rede, logo depois gero um arquivo texto com o conteúdo da fita, a troca da fita é manual e diária e as fitas tem espaço de sobra em relação ao backup, tipo uma pasta com 150GB em uma fita de 800GB ( tenho muitas fitas ), logo após backup e a gravação do arquivo texto, a fita é automaticamente rebobinada e tem um comando pra ejetar.

o script é assim:


#/bin/bash

pasta=bkp$(date +%d%m%y)

#faz backup com tar -c e lista para arquivo texto com tar -f
tar -cvf /dev/st0 /root/backup/$pasta && tar -tvf /dev/st0 > /root/backup/$pasta/fita_$pasta.txt

#Ejeta
mt -f /dev/st0 eject


Agora vem o problema:

Num feriadão tipo quinta (feriado) , sexta ( enforcado ), sábado, domingo e segunda (folga), ou seja num período de 5 dias ( só pra dar um exemplo), queria aproveitar o espaço de 800GB da fita que sei que caberia 5 backups (150Gb x 5 = 750GB), o que caberia na fita bastava eu gravar consecutivamente na mesma fita sem a opção de auto rebobinamento ( no rewind - nst0 ) e sem ejetar.

MAS eu queria após cada gravação também listar o conteúdo daquela gravação e aí que não sei usar o comando mt, pois em testes manuais quando eu gravo o primeiro arquivo, eu tenho que voltar a fita ( mt - f /dev/nst0 rewind ) e listar ( tar -tvf /dev/nst0 > /root/testes/result.txt ), da primeira vez sai certo, mas quando gravo o segundo arquivo eu não sei como posicionar a fita para uma segunda gravação, gravar e depois listar só essa segunda gravação.

Já tentei todas as opções: mt -f fsf 1 / mt -f fsr / mt - ffsfm 1... e nada dá certo sempre dá erro.

Quando rebobino e listo o conteúdo da primeira gravação ( que dá certo ), não sei se ao listar ele vai pro fim do bloco ou se lista e volta antes do bloco.

Por favor alguém pode me "traduzir" e dá exemplos de como avançar e retroceder fita com exemplos práticos pois só traduzir pro portugues a manpage naum adianta nada...troca palavras que são comandos e embaralha tudo e não tem exemplo.

Vi outras artigos aqui no vol de mt, mas não diz como listar após cada gravação e ainda posicionar certo pra gravar de novo.

Desde já agradeço...


Luiz Carlos



  


2. Re: Ajuda com o comando mt ( Manipular fitas ) [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/04/2015 - 21:44h

Meu caro, eu mesmo já respondi a você sobre esse assunto no tópico http://www.vivaolinux.com.br/topico/Shell-Script/Como-gravar-backups-na-mesma-fita-LTO-consecutivame.... Ali você tem explicação detalhada e exemplos de uso.

Mas vamos nós de novo. Suponha que você criou três datasets na fita, com a seguinte sequência de comandos.

export TAPE=/dev/nst0  # Ajusta default para dispositivo que não rebobina.

mt rewind # Volta para o início da fita

cd /diretorio1
tar cz . # Arquiva comprimindo com gzip

cd /diretorio2
tar cj . # Arquiva comprimindo com bzip2

cd /diretorio3
tar c . # Arquiva sem compressão por software


Se eu quiser, agora, extrair o conteúdo do terceiro arquivo da fita num outro diretório, eu devo fazer algo parecido com o seguinte.

export TAPE=/dev/nst0

mt rewind # Certifica que está no começo da fita

# Como está no início da fita, a cabeça de leitura
# está apontando para o início do primeiro arquivo.
# Logo, para aceder ao começo do terceiro arquivo,
# devo pular o arquivo corrente e o seguinte (pular
# dois arquivos).
mt fsf 2 # Pula sobre o arquivo corrente e o seguinte.

# Agora a cabeça de leitura está no começo do terceiro
# arquivo da fita. Basta extrair o conteúdo no lugar que
# eu desejo.
cd /copia_diretorio3
tar xp

# Rebobina a fita e a ejeta.
mt rewoffl



3. Agradeço a ajuda.

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 18/05/2015 - 16:08h

Desculpa a demora em responder, e reconheço que vc já tinha me respondido no outro tópico, é que eu não tinha compreendido da maneira que deveria, desta vez eu entendi a sua explicação nessa resposta:

Segue uma sub chamada "fita" que criei baseado na sua explicação, de sexta para segunda deu certo, mas aceito sugestões para otimizar.



########## DECLARAÇÃO DE VARIÁVEIS #############

pasta=bkp$(date +%d%m%y)

notes=bkpNotes$(date +%d%m%y)

redeadm=bkpRedeAdm$(date +%d%m%y)

web=bkpWeb$(date +%d%m%y)

DATA=`date +%w`

fita(){
echo "Início de gravação em fita: " >> /root/backup/controle.txt
date >> /root/backup/controle.txt

if [ $DATA -eq 1 ] || [ $DATA -eq 2 ] || [ $DATA -eq 3 ] || [ $DATA -eq 4 ]; then # executa de segunda a quinta

tar -cvf /dev/st0 /root/backup/$pasta && tar -tvf /dev/st0 > /root/backup/$pasta/fita_$pasta.txt && echo "Término de gravação em fita: " >> /root/backup/controle.txt
date >> /root/backup/controle.txt
echo >> /root/backup/controle.txt
echo "--------------------------------------------------------" >> /root/backup/controle.txt
mt -f /dev/st0 eject

else

case $DATA in

5) #Sexta - Feira
tar -cvf /dev/nst0 /root/backup/$pasta
mt -f /dev/nst0 rewind
tar -tvf /dev/nst0 > /root/backup/$pasta/fita_$pasta.txt
echo "Término de gravação em fita: " >> /root/backup/controle.txt
date >> /root/backup/controle.txt
echo >> /root/backup/controle.txt
echo "--------------------------------------------------------" >> /root/backup/controle.txt;;

6) #Sabado
mt -f /dev/nst0 fsf 1
tar -cvf /dev/nst0 /root/backup/$pasta
mt -f /dev/nst0 rewind
mt -f /dev/nst0 fsf 1
tar -tvf /dev/nst0 > /root/backup/$pasta/fita_$pasta.txt
echo "Término de gravação em fita: " >> /root/backup/controle.txt
date >> /root/backup/controle.txt
echo >> /root/backup/controle.txt
echo "--------------------------------------------------------" >> /root/backup/controle.txt;;

0) # Domingo
mt -f /dev/nst0 rewind
mt -f /dev/nst0 fsf 2
tar -cvf /dev/nst0 /root/backup/$pasta
mt -f /dev/nst0 rewind
mt -f /dev/nst0 fsf 2
tar -tvf /dev/nst0 > /root/backup/$pasta/fita_$pasta.txt
echo "Término de gravação em fita: " >> /root/backup/controle.txt
date >> /root/backup/controle.txt
echo >> /root/backup/controle.txt
echo "--------------------------------------------------------" >> /root/backup/controle.txt
mt -f /dev/st0 rewind && mt -f /dev/st0 eject;;

esac

fi
}








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts