2013-06-27 17 views
5

Ho un requisito per mantenere un archivio compresso di file di registro. I nomi dei file di registro sono unici e l'archivio, una volta espanso, è semplicemente una directory contenente tutti i file di registro.Un archivio compresso appendibile

La soluzione corrente non sta scalando bene, poiché coinvolge un file tar compresso con gzip. Ogni volta che viene aggiunto un file di registro, prima decomprimono l'intero archivio, aggiungono il file e re-gzip.

C'è uno strumento di archivio Unix che può aggiungere a un archivio compresso senza espansione e ricompressione completa? O può gzip eseguire questo, data la giusta combinazione di argomenti?

risposta

2

È piuttosto semplice disporre di un archivio appendibile di file compressi (non uguale all'archivio compresso appendibile, però).

tar ha un'opzione per aggiungere i file alla fine di un archivio (Supponendo di avere GNU tar)

-r, --append 
     append files to the end of an archive 

È possibile gzip i file di log prima aggiungere all'archivio e possibile continuare ad aggiornare (aggiungere) l'archivio con i file più recenti.

$ ls -l 
foo-20130101.log 
foo-20130102.log 
foo-20130103.log 
$ gzip foo* 
$ ls -l 
foo-20130101.log.gz 
foo-20130102.log.gz 
foo-20130103.log.gz 
$ tar cvf backup.tar foo*gz 

Ora avete un altro file di log da aggiungere all'archivio:

$ ls -l 
foo-20130104.log 
$ gzip foo-20130104.log 
$ tar rvf backup.tar foo-20130104.log 
$ tar tf backup.tar 
foo-20130101.log.gz 
foo-20130102.log.gz 
foo-20130103.log.gz 
foo-20130104.log.gz 
Problemi correlati