Chcę wykonać kopię zapasową mojego systemu Ubuntu i mam dwie partycje do opieki: jedna jest /
, druga jest /home
.
Prawdopodobnie będę chciał wykonać kopię zapasową /
. To nie jest nawet tak duże, że mogę go nosić na karcie SD, a jednocześnie jestem wystarczająco elastyczny, aby zmusić mnie do zrobienia jego zdjęcia (dlatego próbuję w tej chwili użyć rsync).
I o /home
, ma wiele podkatalogów, że nie dbam o wiele, więc nie będę prawdopodobnie włączyć je, ale chcę, aby dbać o plikach tam, takie jak .bash_history
, .bashrc
, .face
i tak dalej.
Więc chcę wykluczyć wszystkie podkatalogi, jednocześnie dołączając pliki do /home
. Jak mogę to osiągnąć?
--exclude "*/"
nie działał. "/*/"
, "/**/"
, --include "*" --exclude */
Nie pokazuje mi, co chcę. przynajmniej skopiował folder źródłowy, bez kopiowania czegokolwiek w nim.
rsync -r -t -p -o -g -v --progress --delete --modify-window=1 -l -H -b -s --exclude home/dinir/ --exclude media/ --exclude proc/kcore / /home/dinir/Temporal Site for Storing Backups
-f" */" -f"+ *"
wpisanie mojego kodu byłoby bezpieczne? Może tak by było-f"- home/dinir/*/" -f"+ home/dinir/*"
?-f"- home/dinir/*/" -f"+ home/dinir/*"
Jeśli chcesz rozwiązać to za pomocą parametrów
--include
i--exclude
, powinieneś zmienić ich kolejność: najpierw wyklucz to, co chcesz, a następnie dołącz wszystko. Robię to zwykle za pomocą tego polecenia:źródło
Domyślnie
rsync
nie kopiuje katalogów. Być może używasz-a
flagi. Jeśli jest to przypadek, zawiadomienie, że zgodnie z manualu ,-a
jest równoważne-rlptgoD
, więc jeśli nie chcesz recurse, wystarczy użyć-lptgoD
.źródło
Spróbuj tego:
Źródło: https://lists.samba.org/archive/rsync/2008-September/021746.html
źródło