Scrivere Su Nastro Tar

Riferimento di questa pagina

Installalo

se non lo hai :-)

apt-get install mt-st

Status

mt -f /dev/st0 status

otterremo un output simile al seguente

SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 512 bytes. Density code 0x24 (DDS-2).
Soft error count since last status=0
General status bits on (41010000):
BOT ONLINE IM_REP_EN

La stringa BOT ONLINE significa che è tutto a posto.

In quest'altro caso invece

 mt -f /dev/st1 status
SCSI 2 tape drive:
File number=-1, block number=-1, partition=0.
Tape block size 0 bytes. Density code 0x0 (default).
Soft error count since last status=0
General status bits on (50000):
DR_OPEN IM_REP_EN

si è fatto su un dispositivo che è senza cassetta inserita.

Differenza dispositivo

Lo stesso nastro viene visto in due modi come

/dev/nst0
#e come
/dev/st0

Il primo è la maniera più sicura per utilizzarlo perchè dopo l'operazione rimane nel punto in cui ha fatto l'ultima scrittura. Il secondo st0 invece torna all'inizio dopo qualsiasi operazione e se si rifa una seconda scrittura la prima viene sovra scritta interamente o in parte.

Creiamo un tar su un nastro

Scriviamo su nastro

date; tar -vcf /dev/nst0 directory >> stato-nastro.log ; date

In questo modo logghiamo tutto quello che stiamo facendo sul file e invece a console ci da le due date e ore per sapere quanto tempo abbiamo impiegato

Leggiamo sul nastro

tar -tf /dev/nst0
immagini/
immagini/Rodini_2/
immagini/Rodini_2/RODINI_2_04.tif
immagini/Rodini_1Cb/
immagini/Rodini_1Cb/RODINI_1C_14.tif

Se facciamo ctrl+c lui lascia il lavoro dove siamo e se rieseguiamo il comando per listare le directory ricomincia dove eravamo arrivati. Da un piccolo errore perchè non trova l'inzio del file tar
root@nirvana:~# tar -tf /dev/nst0
tar: This does not look like a tar archive
tar: Skipping to next header
immagini/Rodini_1Cb/RODINI_1C_15.tif
immagini/Atlante Rodini 1a/
immagini/Atlante Rodini 1a/0001.tif
immagini/Atlante Rodini 1a/0004.tif
immagini/Atlante Rodini 1a/0006.tif
immagini/Atlante Rodini 1a/0005.tif
immagini/Atlante Rodini 1a/0007.tif

Insieme di comandi utili

# Cancella la cassetta:
mt -f /dev/st0 erase

# Puoi andare avanti e indietro nella cassetta con i seguenti comandi:
# Vai alla fine dei dati della cassetta:
mt -f /dev/nst0 eod

#Vai al record precedente:
mt -f /dev/nst0 bsfm 1

# Record successivo:
mt -f /dev/nst0 fsf 1

#Espelli la cassetta:
mt -f /dev/st0 offline

Differenza di un tar

Ecco una prova di quello che succede

Creiamo l'ambiente

giuseppe@peppe-laptop-hp:/tmp$ mkdir prova
giuseppe@peppe-laptop-hp:/tmp$ touch prova/aaaa
giuseppe@peppe-laptop-hp:/tmp$ touch prova/bb
giuseppe@peppe-laptop-hp:/tmp$ touch prova/cc
giuseppe@peppe-laptop-hp:/tmp$ tar -cvzf proviamo.tar.gz prova/ 
prova/
prova/aaaa
prova/cc
prova/bb

Verifichiamo se ci sono differenze

giuseppe@peppe-laptop-hp:/tmp$ tar -df proviamo.tar.gz prova

Il comando non ha dato nessuna differenza quindi sono uguali.

Proviamo a creare una differenza e rilanciare il comando

giuseppe@peppe-laptop-hp:/tmp$ rm prova/bb 
giuseppe@peppe-laptop-hp:/tmp$ tar -df proviamo.tar.gz prova
tar: prova/bb: attenzione: funzione "stat" non riuscita: File o directory non esistente

Proviamo ad imbrogliarlo
giuseppe@peppe-laptop-hp:/tmp$ tar -df proviamo.tar.gz prova/
tar: prova/bb: attenzione: funzione "stat" non riuscita: File o directory non esistente
giuseppe@peppe-laptop-hp:/tmp$ touch prova/bb
giuseppe@peppe-laptop-hp:/tmp$ tar -df proviamo.tar.gz prova/
prova/bb: Gli orari di modifica sono diversi
giuseppe@peppe-laptop-hp:/tmp$

troppo furbo non ci si riesce
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License