você está aqui: Home  → Arquivo de Mensagens

Um pouco mais sobre manipulacao de fitas e o comando mt

Colaboração: Denys Sene dos Santos

Data de Publicação: 14 de Dezembro de 1999

Como complemento do artigo anterior, estas informacoes deverao dar o toque final para aqueles que pretendem utilizar unidades de fita em Sistemas Unix em geral.

Para comecar, temos que conhecer uma outra maneira muito importante com que os dispositivos de fita sao referenciados pelo sistema : chama-se a opcao "no-rewind".

Quando utilizamos o comando "tar" para ler ou escrever na fita e utilizamos um nome comum de dispositivo, como por exemplo o /dev/st0 do Linux, o comando faz a operacao desejada, mas ao final desta a fita e rebobinada ate o seu inicio. Se tivessemos entao uma area de 200 MBytes para gravar em uma fita DAT de 4GBytes, entao ficariam perdidos os 3.8 GBytes da fita? A opcao "no-rewind" permite que o resto da fita seja aproveitado, ou seja, quando gravamos ou lemos alguns dados, a fita ficara parada naquele ponto, para que possam ser adicionados mais dados nela.

A opcao de "no-rewind" aparece nos nomes dos dispositivos, que como foi dito, sao referenciados por mais de uma maneira :

  Linux.........: /dev/st0  - rewind
                  /dev/nst0 - "no-rewind"
  
  Digital Unix..: /dev/rmt0h  - rewind
                  /dev/nrmt0h - "no-rewind" 
  
  HP-UX.........: /dev/rmt/0hc  - rewind
                  /dev/rmt/0hnc - no rewind

E comun aparecer o "n" na opcao de nome de dispositivo que permite o "no-rewind" da fita.

Utilizando o "no-rewind", podemos gravar varias areas e diretorios diferentes em uma mesma fita e depois pular cada um desses blocos de dados para recuperar somente o desejado. Para mover a fita para frente ou para tras de bloco em bloco, pode-se usar o comando "mt".

  Sintaxe: mt -f [dispositivo] [comando] [contagem]
  - comando : pode variar e existem muitas opcoes. Vamos considerar so 4
  opcoes, que sao as mais interessantes e se aplicam ao objetivo acima.
  
  rewind - para voltar a fita toda...
  Ex: mt -f /dev/nrmt0h rewind
  
  offline - volta a fita e ejeta ela para fora 
  Ex: mt -f /dev/nst0 offline
  
  fsf - usado para avancar a fita. Deve ser informado o numero de blocos a
  ser avancado em [contagem].
  Ex: mt -f /dev/nst0 fsf 4
  
  bsf - usado para voltar blocos, depois de ter lido ou avancado alguns
  blocos da fita. Ao informar este comando, e necessario informar
  [contagem] tambem.
  Ex: mt -f /dev/rmt/0hnc bsf 3

Algumas consideracoes finais : 1) quando gravamos no inicio de uma fita que tinha varios blocos, todos eles ficam perdidos, nao da pra fazer milagre com a fita que e um dispostivo de E/S sequencial.

2) Ao avancar a fita ate o seu final e nao haver mais blocos gravados, aparecera um erro informando que nao existem mais dados. Caso a fita nao esteja realmente no final, entende-se que a fita esta no ponto final dos dados, e que esta no ponto certo para continuar a gravacao. Engano! Quando avancar a fita ate este ponto, alguns sistemas nao permitiram que facam gravacao, a nao ser que voltem um bloco, que neste caso sera um bloco nulo, e entao sim podera comecar a gravar daquele ponto.

3) Pode-se ir pulando os blocos com o comando "tar tvf [dispositivo]", para ir vendo o que esta gravado em cada bloco ate que apresente-se o erro informando que nao existem mais dados. Entre um bloco e outro, podem aparecer uma mensagem como "tar: no input" que nao significa que acabou a fita, mas apenas que ele nao leu nada naquele bloco nulo, geralmente e apenas uma marcacao entre o bloco anterior e o seguinte. "Tar" mais uma vez nela e ela deve continuar listando os dados.

Para finalizar, alguns exemplos praticos...

  $ cd /home
  $ tar cvf /dev/nst0 jose/       
  • gravei o diretorio jose/ e todos e todos os dados dentro e a fita ficou parada no ponto certo para uma nova gravacao...
      $ tar cvf /dev/nst0 joao/
    
  • apos o bloco onde estao adicionados os dados do diretorio jose/, estarao os dados do diretorio joao/
      $ mt -f /dev/nst0 rewind
    
  • voltei a fita...
      $ mt -f /dev/nst0 fsf 1
      $ tar tvf /dev/nst0
    
  • Avancei um bloco e mandei o comando tar "listar" o que teria no segundo bloco, ele entao lista o conteudo do diretorio jose/ e para no final dos dados, ponto certo para adicionar mais dados.

    A "Man Page" do Comando "mt" podera fornecer mais detalhes.


 

 

Veja a relação completa dos artigos de Denys Sene dos Santos

Opinião dos Leitores

Marce
30 Nov 2012, 14:08
Excelente artigo.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script