PDA

View Full Version : Backup dei dati su rete


DaRkBoDoM
16-04-2003, 06:55
Ciao

ho implementato un sistema di backup dal mio serverino a questa macchina, usando cron, tar e bzip e samba. (+ uno script per sfruttare il wake-on lan ma non c'interessa qua :)

Tutto funziona a dovere, ma c'e' un problema: se un file viene modificato mentre è letto da tar/bzip, alla fine del backup ottengo un:

tar: /home/tizio/unfilequalsiasi: file changed as we read it
tar: Error exit delayed from previous errors

Alché mi son convinto che questa non sia la migliore soluzione per il backup.
Qualcuno di voi ha implementato sistemi simili (migliori)?
Cosa utilizzate?

lovaz
16-04-2003, 08:47
Direi che il backup va fatto su una partizione smontata, o montata ro, quindi, per quella di root, il backup lo metterei negli script di init.

DaRkBoDoM
16-04-2003, 13:23
Il problema e' che si tratta di un server, per cui non posso smontare le partizioni o riavviare la macchina per fare il backup :)

ilsensine
16-04-2003, 13:54
Originally posted by "DaRkBoDoM"


tar: Error exit delayed from previous errors

Questo indica che tar dovrebbe aver creato comunque l'archivio.

L'errore ti viene notificato in quanto tar trova un cambiamento di data ultima modifica da quando ha iniziato a leggere il file a quando è stato letto tutto, quindi sospetta che il file sia stato modificato durante la lettura e quindi potrebbe esserne stata archiviata una copia corrotta ("un pò del vecchio, un pò del nuovo").

Se non ti "disturba" tanto e fai backup abbastanza frequenti, puoi ignorare quell'errore.

DaRkBoDoM
16-04-2003, 14:02
:)

Si, questo l'avevo capito, il prob è proprio che mi disturba tanto e non faccio backup frequentissimi a causa della durata del backup (mezza giornata + o -)

ilsensine
16-04-2003, 14:06
Allora fai così:
1 - raccogli gli errori di tar, reindirizzando stderr su un file
2 - finito il tar, con uno script esamini il file di errore sostituendo all'archivio i file "problematici". Reindirizzi eventuali errori da stderr su un file, come al punto 1.
3 - Ripeti il passo 2 finché ci sono errori

Il nome del file puoi recuperarlo dal file di errore con sed; ad es. prova a eseguire questo (echo simula il cat del file contenente gli errori):

echo "tar: /home/tizio/unfilequalsiasi: file changed as we read it"|grep "file changed as we read it"| sed s/tar:\ //|sed s/": file changed as we read it"//

DaRkBoDoM
17-04-2003, 05:42
Geniale.

tnx