Newsgroup: it.comp.os.linux.sys
Titolo: Ruotare File

Devo eseguire una rotazione di file su una nas,
attualmente uso questo comando che mi rimuove i file pi�
vecchi di 7 gg:
find /var/nas/*.tar.gz -mtime +7 -exec rm {} \;
Sono file tar.gz provenienti da vari backup, 
l'inconveniente � che se non faccio backup per 7 giorni
mi trovo la nas svuotata da questo tipo di file e vorrei che 
non accadesse. 
Come posso fare per ruotarli in base alla data, tenendo almeno due o tre 
versioni di ogni singolo file ?    	
-- 
Michele.

 versioni di ogni singolo file ?    	
Cioï¿œ? Eliminare i 7 giorni solo se son presenti almeno 3 file?
Hanno un pattern in comune questi file?

 Hanno un pattern in comune questi file?
Sono file che vengono generati da vmbackup sono tutti con questo formato:
nomemacchina.20090624203259.tar.gz
-- 
Michele.

 nomemacchina.20090624203259.tar.gz
sara' che sono tordo, ma non capisco quel che vuoi fare, posti i nomi di 5
file indicando i tre che vuoi tenere?
-- 
nebbia 

 di 5 file indicando i tre che vuoi tenere?
Forse mi sono spiegato male io, nella fretta. 
Eseguo tutti i gg il backup di 4 macchine virtuali 
e li copio in una determinata directory.
Ogni sera genero questo tipo di file: 
macchina1.20090624203259.tar.gz
macchina2.20090624222551.tar.gz
macchina3.20090625000810.tar.gz
macchina4.20090625005307.tar.gz
La situazione dopo 3 backup dovrebbe essere questa:
macchina1.20090624203259.tar.gz
macchina2.20090624222551.tar.gz
macchina3.20090625000810.tar.gz
macchina4.20090625005307.tar.gz
macchina1.20090625203259.tar.gz
macchina2.20090625222551.tar.gz
macchina3.20090626000810.tar.gz
macchina4.20090626005307.tar.gz
macchina1.20090626203259.tar.gz
macchina2.20090626222551.tar.gz
macchina3.20090627000810.tar.gz
macchina4.20090627005307.tar.gz
Per ogni macchina ho 3 backup, questa � la situazione che vorrei 
mantenere anche dopo che � girato il 4� backup.
-- 
Michele.

 versioni di ogni singolo file ?    	
  Io mi affiderei al classico logrotate.  Creerei un file apposito, tipo
logrot_nas, con:
/var/nas/*.tar.gz {
# rotate log files daily
daily
# keep 3 days worth of backlogs
rotate 3
# Files are already compressed
nocompress
# Remove rotated logs older than 7 days.
maxage 7
}
  Vedi un po' se fa al caso tuo.
  Ciao,
-- 
Alessandro Selli 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Chiave PGP/GPG: EC885A8B

   Vedi un po' se fa al caso tuo.
  Ovviamente logrotate ti cambia il nome dei file ruotati.  Ma potresti
correggerne il nome con uno script apposito eseguito automaticamente dopo
la rotazione, inserendo le righe seguenti al file di configurazione:
lastaction
  /var/scripts/logrot_nas.sh
endscript
  Oppure, per fare la stessa cosa dopo la rotazione di ogni singolo file:
postrotate
  /var/scripts/logrot_nas-each.sh
endscript
  In questo secondo caso, bisogna fare attenzione che non si cambi il nome
del file ruotato in un modo tale che il file rinominato sia re-ruotato
dalla stessa esecuzione di logrotate ancora attiva, il che è probabile che
avvenga se i nomi dei file non devono cambiare per nulla.  Meglio usare
lastaction, quindi.


   Vedi un po' se fa al caso tuo.
Si, fa al caso mio, provo.
Grazie
-- 
Michele.

> maxage 7
  Adesso mi domando tra queste due direttive quale avrebbe la precedenza.
 Se il logrotate facesse un OR tra le condizioni ce_ne_sono_più_di_tre e
sono_più_vecchi_di_una_settimana per cancellarli, allora non si
salverebbero i tuoi ultimi tre log più vecchi di una settimana, temo.
  Cercherò di fare una prova anch'io.


 macchina1.20090624203259.tar.gz
Quello che non capisco io e` se questo nome e` fisso, ovvero il comando
che usi per generare i backup genera _necessariamente_ un file il cui
nome contiene il timestamp giornaliero. Se cosi` non fosse, allora darei
un'occhiata al pattern %u di date, in quanto con uno script ad hoc
potresti mantenere solamente gli ultimi n giorni di backup (basta che
fai sovrascrivere i vecchi file). Personalmente uso questo metodo per i
miei backup
Enrico
P.S. piuttosto, perche` non fai un backup della macchina appena
installata e poi il backup dei dati che vi sono sopra?

 }
Puo' essere corretto ? 
-- 
Michele.

 Puo' essere corretto ? 
  Si, certo.  Così ti tiene sempre gli ultimi tre file, a prescindere
dalla loro età.


 dalla loro et�.
Grazie, ora vedo *anche* di farlo funzionare.
A presto. 
-- 
Michele.