Creare archivi zip e tar con limitazione di dimensione

Generare multi-archivi compattati | 7/23/2018

multi_tar_gzOggi spiegherò come ho fatto per trasferire una directory di 500 GB  contenente diversi milioni di files di testo in formato xml con una dimensione di 10 Kb ognuno da un hard disk ad un'altro. La cosa potrebbe sembrare semplice ma non lo è affatto ed è i questi casi che viene da piangere perchè essendo moltissimi file piccolissimi la testina dell'hard disk impazzisce per il semplice fatto che deve spostarsi in continuazione nella tabella di allocazione dei file per leggere i clusters per sapere dove andrà ad incontrare i files e di conseguenza tutto il processo ritarderà moltissimo tempo e nel mio caso specifico dopo una settimana di tempo il processo  di copia non si era ancora concluso e pertanto ho dovuto interrompere la copia.

Ho pensato di creare un archivio zip per poter trasferire la directory compattata ma anche in questo caso non ho avuto successo  perchè il processo di compattazione  fa, come prima cosa, l'analisi della struttura della directory e dopo qualche giorno di analisi della stessa il messaggio che mi è stato ritornato è stato un bellissimo "Out of Memory" crying

Dopo questi due tentativi andati a male ho pensato di creare un archivio tar.gz frazionandolo in files più piccoli e ho usato il seguente comando:

tar -czvf - /directory/files | split  -b 10M - archivio.tar.gz

Durante il processo di compattazione saranno creati tanti files che avranno come nome il nome che è stato definito nel comando per esempio: archivio.ta.gz e nel finale saranno aggiunte delle sequenze di lettere progressive tipo archivio.ta.gzaa, archivio.ta.gzab .... etc.

Per la decompressione ho usato il comando:

cat archivio.tar.* | tar -zxvf - 

Il cat mostra il contenuto degli archivi tar.gz e li passa al comando tar che si occuperà alla decompattazione.

Con questi semplici passi sono riuscito a terminare il mio passaggio di una directory enorme da un disco ad un'altro. wink

 


Categorie: Gnu/Linux, How-To, Bash
Categorie
Cookie Law