Prima di tutto, dovresti leggere un po' sulla sintassi include/exclude di rsync. Ho la sensazione che quello che vuoi fare sia meglio farlo usando **
glob di *
globi. (**
si espande a qualsiasi numero di voci, mentre *
si espande solo in una singola voce che potrebbe corrispondere a più directory inserimenti. I dettagli sono in man rsync
in Includi/Escludi regole pattern .)
Detto questo, se vuoi essere in grado di ripristinare il sistema a uno stato operativo noto dal backup con il minimo sforzo, dovresti fare attenzione a escludere file o directory. Io stesso uso rsnapshot e in realtà ho adottato l'approccio opposto:includi tutto tranne alcune directory accuratamente selezionate.
Quindi il mio rsnapshot.conf in realtà afferma (con 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 tutto ciò che non è inteso come temporaneo venga copiato. A causa di rsnapshot che utilizza il comportamento hardlink-to-deduplicate di rsync, l'unico costo reale è durante la prima esecuzione; dopodiché, supponendo che tu abbia una posizione di destinazione del backup di dimensioni ragionevoli (rispetto alla dimensione totale del tuo set di dati), richiede pochissimo 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 su se stesso. Tuttavia, per semplicità, se mai avessi bisogno di eseguire il ripristino su bare metal, voglio mantenere il punto di montaggio!
Anche nel mio caso non posso ragionevolmente usare one_fs 1
; Eseguo ZFS con attualmente ~ 40 file system. Elencarli tutti in modo esplicito sarebbe un incubo di manutenzione e renderebbe il lavoro con i file system ZFS molto più complicato di quanto dovrebbe essere.
Praticamente tutto ciò che vuoi 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.
La maggior parte di ciò che stai cercando di fare può probabilmente essere realizzato semplicemente usando il one_fs
ambientazione. Imposta i filesystem che vuoi includere nei tuoi backup, quindi usa quell'impostazione per ignorare il resto (proc
, sys
, dev
, eccetera.). Includerei /lost+found
perché quella directory dovrebbe essere sempre vuota a meno che tu non abbia eseguito il backup di un filesystem danneggiato, nel qual caso probabilmente vorrai un backup di tutto ciò che fsck
recuperato. Inoltre, .pyc
e .pyo
non dovrebbe davvero essere nella directory principale in primo luogo, quindi rimuoverei anche quelle righe. /tmp
e /var/tmp
sono circa gli unici percorsi rimanenti su un sistema "generico" che contengono dati che possono essere esclusi in modo affidabile dai backup. Quindi forse prova qualcosa come:
one_fs 1
exclude /tmp/
exclude /var/tmp/