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 rsync
sotto 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.
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.