Newsgroup: it.comp.os.linux.iniziare
Titolo: Emulare l'opzione -FS del comando zip

Ciao a tutti,
da tempo uso un mio programma per fare il backup di alcune directories. 
Il backup viene fatto usando il comando zip, con l'opzione -FS, che 
consente di avere nel file zip finale sempre la stessa situazione della 
directory di cui si fa il backup. Praticamente, se tra un backup e 
l'altro, dei files vengono aggiunti, modificati o eliminati, nello zip 
finale la situazione sarà sempre rispecchiata.
Fino ad ora ho potuto usare il comando zip perché le directories che 
salvavo erano tutte su file system NTFS o FAT32.
Ora invece, avrei la necessità di farlo anche per alcune directories su 
file system ext4. Non posso usare il comando zip, perché non mi 
salverebbe permessi, proprietario, ecc.
Sapete consigliarmi che comando usare per avere un risultato il più 
simile possibile?
 
Grazie in anticipo, Mario
 
 

 simile possibile?
 
Tar è tuo amico
 
Enrico


tar

 Enrico
 
Grazie, avevo guardato tar, ma la cosa più simile che ho trovato è il 
parametro --listed-incremental.
Questo però, a differenza di quanto faccio col comando zip, ha questi 
"inconvenienti":
- ogni volta salva solo i files modificati
- per ogni diretory salvata avrò almeno 2 files ".tar.gz": quello del 
primo lancio ed i successivi, + quello che contiene le info per 
calcolare le differenze
- se non ho capito male, quest'opzione non "cancella" dal .tar.gz i 
files che nel frattempo ho ancellato da disco.
 
Grazie, Mario
 
 

 files che nel frattempo ho ancellato da disco.
 
  Infatti no, --listed-incremental serve per creare backup incrementali,
ossia file separati con le modifiche successive apportate al filesystem
dall'ultima esecuzione di tar -listed-incremental.  I backup incrementali,
come pure quelli differenziali, non devono toccare gli archivi
precedentemente creati, altrimenti non sarebbe più possibile eseguire i
restore incrementali (o differenziali).
tar ha l'opzione --update che aggiunge all'archivio solamente i file
modificati dopo la creazione dell'archivio, e l'opzione --delete che
ne cancella i file indicati.  Ma da quello che ho capito tar non fa
esattamente quello che vuoi fare: aggiornare un file di archivio già
esistente cancellandone i file cancellati dal filesystem e inserendovi i file
nuovi creati senza averne più versioni.  Ovvero non con una semplice
esecuzione di tar, altrimenti ti tocca fare uno script che elenchi i file che
tar aggiungerebbe al vecchio archivio senza aggiornarlo o crearne uno nuovo
(-d, --diff, --compare), cancellare nel vecchio archivio i file non esistenti
sul FS e quelli da aggiornare (--delete), quindi aggiornare il vecchio
archivio (--update).
 
 
  Ciao,
 
 
-- 
Alessandro Selli 
http://alessandro.route-add.net
 
VOIP SIP: 
dhata...@ekiga.net
 
Chiavi PGP/GPG keys: B7FD89FD, 4A904FD9
 

 files che nel frattempo ho ancellato da disco.
 
Vediamo di fare un po' di esempi. Tu vuoi mettere sotto backup la directory
Documenti. per farlo sotto Windows fai:
 
 zip a Documenti-backup Documenti
 
(nota: ho improvvisato la sintassi di zip). Questo ti crea nella directory
corrente il file Documenti-backup.zip, che contiene tutto quello che c'è nella
directory Documenti. Passa una settimana, vuoi aggiornare il backup, tu fai
 
  zip -FS a Documenti-backup Documenti
 
Questo comando:
  - Verifica quali file ci sono nella directory Documenti.
  - Verifica quali file ci sono nel file zip Documenti-backup.zip .
  - Cancella nel file zip i file che non sono più presenti nella directory.
  - Sostituisce nel file zip i file che sono stati modificati.
 
Ora, qual è il problema di fare un tar czvf Documenti-backup.tar.gz Documenti ?
In questo caso, tar sostituisce sempre il file di destinazione, ed hai
praticamente lo stesso risultato che ottenevi con zip. Se poi vuoi comunque
continuare ad emulare quel comportamento (che ha senso solo con grandi archivi)
puoi usare 7z (ma per fini di backup te lo sconsiglio)
 
Enrico

 archivi) puoi usare 7z (ma per fini di backup te lo sconsiglio)
 
7z l'avevo valutato, ma ha lo stesso problema di zip: non salva 
permessi, proprietario, ecc.
 
 
 
Ciao, Mario
 
 

.....
 
Scusate tutti, ma il comando rsync non fa esattamente proprio tutto
quello che MBulu chiede?
 
 
-- 
bye, Yoda
 

 quello che MBulu chiede?
 
Da quel che ho capito no: non fa la compressione.
O meglio, comprime i files durante il trasferimento tra partenza e 
destinazione, ma poi vengono decompressi.
 
Alla fine ho usato un approccio misto:
- le directories su NTFS le salvo con zip
- quelle su ext4 con tar
 
Ciao, Mario