Voci che posso tranquillamente escludere facendo backup


10

Sto pianificando una strategia di backup basata su rsnapshot .

Voglio fare un backup completo del sistema escludendo file e directory che sarebbero inutili per il ripristino di avere di nuovo un sistema funzionante. Ho già escluso:

# System:
exclude /dev/*
exclude /proc/*
exclude /sys/*
exclude /tmp/*
exclude /run/*
exclude /mnt/*
exclude /media/*
exclude /lost+found

# Application:
exclude /*.pyc
exclude /*.pyo

Mi chiedo quali altre voci posso aggiungere all'elenco di esclusione senza compromettere il sistema ripristinato. Parlando di un sistema "generico" Linux, puoi suggerire ulteriori estensioni glob, directory temporanee, cache, ecc. Posso escludere in modo sicuro?

Risposte:


11

Prima di tutto, dovresti leggere un po 'la sintassi include / exclude di rsync. Ho la sensazione che quello che vuoi fare sia meglio fare usando **globs che *globs. ( **Si espande per tutto il numero di voci, mentre *si espande solo a una singola voce, eventualmente, delle corrispondenze di directory voci. I dettagli sono man rsyncsotto inclusione / esclusione Regole del modello .)

Detto questo, se vuoi essere in grado di ripristinare il sistema in uno stato di funzionamento noto dal backup con un minimo di seccatura, dovresti fare attenzione ad escludere file o directory. Uso me stesso rsnapshot e in realtà ho adottato l'approccio opposto: includi tutto tranne alcune directory accuratamente selezionate.

Quindi il mio rsnapshot.conf afferma effettivamente (con le schede per rendere felice il parser del file di configurazione di rsnapshot):

interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./

e molto poco altro. Sì, significa che potrei copiare un po 'più di quanto è strettamente necessario, ma assicura che venga copiato tutto ciò che non è inteso come effimero. A causa di rsnapshot che utilizza il comportamento hardlink-deduplicate di rsync, l'unico costo reale per questo è durante la prima esecuzione; successivamente, supponendo che si disponga di una posizione di destinazione del backup di dimensioni ragionevoli (rispetto alla dimensione del set di dati totale), sono necessari pochi extra in termini di tempo o spazio su disco. Escludo il contenuto di / backup perché è lì che monto il file system di destinazione del backup; non escluderlo porterebbe alla situazione di copiare il backup in se stesso. Tuttavia, per semplicità, se mai avessi bisogno di ripristinare su bare metal, voglio mantenere il punto di montaggio!

Nel mio caso, inoltre, non posso ragionevolmente usare one_fs 1; Corro ZFS con attualmente ~ 40 file system. Elencare tutti quelli in modo esplicito sarebbe un incubo per la manutenzione e rendere il lavoro con i file system ZFS molto più coinvolto di quanto non sia necessario.

Praticamente qualsiasi cosa tu voglia escludere al di sopra e al di là di quanto sopra dipenderà comunque dalla distribuzione, quindi è praticamente impossibile dare una risposta generica. Detto questo, probabilmente troverai alcuni candidati in / var.


1
exclude /somepath/*va perfettamente bene in questo caso; esclude tutto /somepath/, proprio come previsto. Non è necessario **perché non è necessario guardare più in profondità quando tutto /somepath/è già escluso.
Martin von Wittich,

Oppure usa exclude /somepathe ignora del tutto queste directory, non solo i loro contenuti.
Frank Kusters,

4
@spaceknarf Interrompe il montaggio quando si esegue il ripristino su bare metal, perché non esiste il punto di montaggio.
un CVn del

4

La maggior parte di ciò che si sta tentando di fare può essere probabilmente eseguita semplicemente utilizzando l' one_fsimpostazione. Impostare i filesystem che si desidera includere nel backup, quindi utilizzare tale impostazione per ignorare il resto ( proc, sys, dev, etc.). Includerei /lost+foundperché quella directory dovrebbe essere sempre vuota a meno che non sia stato eseguito il backup di un file system danneggiato, nel qual caso probabilmente si desidera un backup di tutto ciò che è stato fsckripristinato. Inoltre, .pyce .pyonon dovrei davvero trovarmi nella directory principale in primo luogo, quindi rimuoverei anche quelle righe. /tmpe /var/tmpriguardano gli unici percorsi rimanenti su un sistema "generico" che contengono dati che possono essere esclusi in modo affidabile dai backup. Quindi forse prova qualcosa del tipo:

one_fs 1

exclude /tmp/
exclude /var/tmp/

Non ho veramente dire /*.pyce /*.pyc, ma a livello di sistema *.pyce *.pyo, ho fissato questo. Non sono sicuro che se one_fsimpostato su 1potrebbe escludere qualsiasi cosa io voglia, però.
Paolo,

1
Cosa succede se un pacchetto di sistema utilizza tali file?
depquid

hai ragione, ma sono quasi sicuro che ogni file .py verrà ricompilato automaticamente prima o poi.
Paolo,

3
Forse, ma sul mio sistema tali file sono installati dai pacchetti del fornitore. Ciò significa che se il sistema viene ripristinato dal backup, i file che il gestore di pacchetti ritiene siano presenti mancheranno. Hai chiesto una soluzione per un sistema Linux "generico" e non credo sia sicuro presumere che tali file possano essere persi senza causare problemi.
depquid

una cosa degna di nota che ho dimenticato di dire nel Q. è che anche i montaggi di collegamento dovrebbero essere esclusi per evitare la duplicazione dei dati.
Paolo,

1

Trovo che sia meglio avere un elenco di pacchetti, il contenuto di / etc, / home e qualsiasi dato utente / sistema da / var e altrove. Di solito è più veloce reinstallare i pacchetti e copiare nuovamente la configurazione di lavoro.


Perché l'installazione dei pacchetti, che include la scrittura di tutti i file di sistema, nonché l'elaborazione della configurazione e dei metadati, sarebbe più veloce della semplice copia dei file?
depquid

È stata la mia esperienza che quando è necessario un backup reale scopri anche che non hai archiviato e documentato correttamente tutti i bit di un sistema. Concentrarsi invece sulla ricreazione piuttosto che sul restauro rende più facile, veloce e più spesso fatto. Ovviamente YMMV.
Sean Perry,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.