[BACKUP] Tar: overzicht van meerdere achieven op 1 tape

Pagina: 1
Acties:

  • Q
  • Registratie: November 1999
  • Nu online

Q

Au Contraire Mon Capitan!

Topicstarter
Ik maak gebruik van een 5 gb hp colorado tapedrive onder Freebsd 4.8 met tar en mt en dat gaat als een tierelier.

nonrewinding device = /dev/nast0 en rewinding is /dev/ast0

door gewoon meerdere tar cf /dev/nast0 [pathnaardata] te doen kun je meerdere archieven op 1 tape zetten. Met mt -f /dev/nast0 fsf 1 kun je bijvoorbeeld naar het 2e archief gaan op de tape. Maar mijn vraag:

Hoe kun je een overzicht krijgen van de verschillende archieven die je op 1 tape hebt gezet?

bijv:

/etc
/home
/var/www

Met een gewoon tararchief geef je een bestandsnaam op zoals woensdag.tar maar met een tapebackup doe je dat niet en schrijf je de data meteen weg.

Hoe kunnen wij dit aanpakken?

Verwijderd

Nou, aangezien de individuele archieven niet gelabeld zijn, kun je hoogstens zien hoeveel files (= tar archives) er op de tape staan, maar niet hoe ze heten. dus moet je de archives zelf ook nog scannen

  • Q
  • Registratie: November 1999
  • Nu online

Q

Au Contraire Mon Capitan!

Topicstarter
Ik zie dat tar (gelukkig) een --label functie heeft.

Met een klein whileloopje zou ik dus met mt van archive naar archive kunnen gaan met

tar tf /dev/nast0 | head -n 1

Indien een tar een label heeft wordt dit nl als eerste gedisplayed.

to be continued....

  • Q
  • Registratie: November 1999
  • Nu online

Q

Au Contraire Mon Capitan!

Topicstarter
Gelukt.

Start met terugspoelen van een tape.

is je device /dev/ast0? dan nonrewindingtapedevice is /dev/nast0

mt -f /dev/[nonrewindingtapedevice] rewind

maak archieven met

tar c(z of j)f /dev/nast0 [tebackuppen bestanden en dirs] --label=backuplabel

Dus we backuppen drie mappen:

/etc
/home
/var/www

dan doen we

tar cf /dev/nast0 /etc --label=aapje
tar cf /dev/nast0 /home --label=nootje
tar cf /dev/nast0 /var/www --label=miesje

en rewinden we weer:

mt -f /dev/[nonrewindingtapedevice] rewind

lijst van meerdere archieven op 1 tape

code:
1
2
3
4
5
6
7
8
9
10
#!/usr/local/bin/bash

einde=0

while [ $einde ]
do
    einde=$(tar tf /dev/nast0 | head -n 1)
    echo $einde
    mt -f /dev/nast0 fsf
done


resultaat is het volgende:

code:
1
2
3
aapje
nootje
miesje


Eigenlijk heel erg simpel. Case solved.

Verwijderd

kapt tar er automatisch mee als head de pipe afbreekt?

  • Q
  • Registratie: November 1999
  • Nu online

Q

Au Contraire Mon Capitan!

Topicstarter
Verwijderd schreef op 29 July 2003 @ 21:47:
kapt tar er automatisch mee als head de pipe afbreekt?
Nee. Tar spuugt gewoon de gehele list uit en piped die naar head die dus vervolgens alleen de 1e regel laat zien. Dus een tar met 10.000 bestanden wordt dus in zijn geheel gelist (natuurlijk met dat leuke label wat we er aan hadden gegeven) en ge piped naar head die dan lekker economisch alleen het 1e regeltje pakt.

Werkt als een trein. Ben geen tarcommando tegen gekomen dat alleen het label van een tar laat zien.

Is dit eigenlijk het antwoord op je vraag? Of heb ik je vraag verkeerd begrepen?

[ Voor 8% gewijzigd door Q op 01-08-2003 00:29 ]


Verwijderd

Het betekent dus wel dat het bestand op tape he-le-maal gelezen moet worden, en niet alleen het begin, en dan fast-forward naar de volgende file. Of zit ik nu fout met de interne structuur van tar-files?

  • Q
  • Registratie: November 1999
  • Nu online

Q

Au Contraire Mon Capitan!

Topicstarter
Verwijderd schreef op 02 augustus 2003 @ 21:25:
Het betekent dus wel dat het bestand op tape he-le-maal gelezen moet worden, en niet alleen het begin, en dan fast-forward naar de volgende file. Of zit ik nu fout met de interne structuur van tar-files?
Als ik tar tvf /dev/nast0 doe, waarbij er 3 bestanden achter elkaar op tape staan, dan zie ik dat hij echt de bestanden stuk voor stuk moet inlezen.

Maar er speelt iets anders. Als je tegen de drive zegt: mt -f <tapedevice> fsf
dan moet hij natuurlijk de data lezen om te zoeken naar een eof.

Je kunt tar wel omzeilen met

dd if=/yourTarArchiveFile bs=512 count=1 # 1 block van 512 bytes. Kies block afhankelijk van blocksize tapedevice om zo alleen het 1e block van een archief in te lezen en niet het hele archief.

wat je wel nog even met awk moet behandelen ofzo.

Maar als je met meerere archieven op 1 tape gaat werken is een beetje vlotte tapedrive wel gewenst dus.

Wil je niet het hele archief moeten doorlopen om te zien wat er op tape staat dan zou je de te backuppen bestanden eerst moeten listen (met find?) in een file, deze met tar op tape zetten en dan het daadwerkelijke archief er achteraan plakken.

Multiple archfves gaan dan nogsteeds niet sneller, maar de oude vertrouwde manier, met 1 archief per tape wordt er wel door versneld: je hoeft alleen maar het 1e bestand even te restoren en te begluren met cat of je favorite editor om te zien wat er allemaal op tape staat.

Apparte archieven achter elkaar opzoeken gaat wel sneller als je van te voren weet
dat je meerdere apparte archieven op tape gaat zetten, maar dat lis eigenlijk onzin, want dan gooi je gewoon alles in 1 tar.

Overigens is dat dd commando 'god' als je alleen ffies de label wil opvragen van een archief op een tape met maar 1 archief.

[ Voor 4% gewijzigd door Q op 03-08-2003 00:29 ]

Pagina: 1