Po pierwsze, powinieneś przeczytać trochę o składni włączania / wyłączania rsync. Mam wrażenie, że to, co chcesz zrobić, lepiej zrobić przy użyciu **
globów niż *
globusów. ( **
Rozwija się do dowolnej liczby wpisów, natomiast *
rozszerza się tylko do jednego wejścia ewentualnie dopasowanie wielu katalogów wpisy. Szczegóły są w man rsync
ramach włączeń / wykluczeń reguł wzorców ).
To powiedziawszy, jeśli chcesz móc przywrócić system do znanego stanu roboczego z kopii zapasowej przy minimalnym wysiłku, powinieneś zachować ostrożność, wykluczając pliki lub katalogi. Sam używam rsnapshot i faktycznie przyjąłem odwrotne podejście: uwzględnij wszystko oprócz kilku starannie wybranych katalogów.
Więc mój plik rsnapshot.conf faktycznie stwierdza (z tabulatorami, aby parser plików konfiguracyjnych rsnapshot był szczęśliwy):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
i bardzo niewiele więcej. Tak, oznacza to, że mogę skopiować nieco więcej niż to, co jest ściśle potrzebne, ale gwarantuje, że skopiowane zostanie wszystko, co nie jest zamierzone jako ephermal. Z powodu rsnapshot wykorzystującego zachowanie rsync w dowiązaniu do deduplikacji, jedyny realny koszt tego jest podczas pierwszego uruchomienia; po tym, zakładając, że masz miejsce docelowe kopii zapasowej w rozsądnej wielkości (w porównaniu z całkowitym rozmiarem zestawu danych), zajmuje to niewiele czasu lub miejsca na dysku. Wykluczam zawartość / backup, ponieważ tam montuję docelowy system plików kopii zapasowej; nie wykluczając, prowadziłoby to do kopiowania kopii zapasowej do siebie. Jednak dla uproszczenia, jeśli kiedykolwiek będę musiał przywrócić do stanu surowego, chcę zachować punkt montowania!
W moim przypadku również nie mogę rozsądnie wykorzystać one_fs 1
; Używam ZFS z obecnie ~ 40 systemami plików. Wymienienie wszystkich z nich stanowiłoby koszmar konserwacji i spowodowałoby, że praca z systemami plików ZFS byłaby o wiele bardziej zaangażowana niż powinna.
Prawie wszystko, co chcesz wykluczyć powyżej i powyżej, będzie zależało od dystrybucji, więc udzielenie ogólnej odpowiedzi jest praktycznie niemożliwe. To powiedziawszy, prawdopodobnie znajdziesz kandydatów w / var.
exclude /somepath/*
w tym przypadku jest całkowicie w porządku; wyklucza wszystko/somepath/
, zgodnie z oczekiwaniami. Nie potrzebujesz,**
ponieważ nie musisz szukać głębiej, gdy wszystko w środku/somepath/
jest już wykluczone.