Tworzę kopię zapasową serwera Linux i przechowuję go na innym serwerze.
Zacząłem od prostego
rsync -aPh --del server.example.com:/ /mnt/backup
Następnie ktoś zauważył, że nie powinienem wykonywać kopii zapasowej /proc
, ponieważ nie chcesz przywracać /proc
jednego serwera na drugim.
Czy jest coś jeszcze, co powinienem / nie powinienem uwzględnić?
Na przykład o czym /sys
?
/boot
całkowicie - może być konieczne porównanie starej konfiguracji rozruchowej z nową konfiguracją rozruchową. Pamiętaj tylko, aby nie przywracać/boot
inaczej niż ręcznie.Zarówno
/proc
i/sys
są wirtualne systemy plików, które odzwierciedlają stan systemu i pozwalają na zmianę kilku parametrów uruchomieniowe (a czasem zrobić bardziej niebezpieczne rzeczy, jak pisanie bezpośrednio do pamięci lub do urządzenia). Nigdy nie należy ich tworzyć kopii zapasowych ani przywracać.W większości współczesnych dystrybucji
/dev
jest dynamicznie tworzony przy rozruchu (jest to system plików pamięci wypełniony przezudev
i znajomych). Tworzenie kopii zapasowej nie ma sensu, a próba przywrócenia go jest daremna. Jeśli jednak twoja dystrybucja jest skonfigurowana do używania statycznego/dev
, nie ma to zastosowania (sprawdź/proc/mounts
, czy/dev
jesttmpfs
to system plików pamięci).Istnieją inne systemy plików, których nie powinieneś tworzyć kopii zapasowej;
usbfs
(zwykle co/proc/bus/usb
, jeśli zamontowany w ogóle),debugfs
(miało być w/sys/kernel/debug
przypadku zamontowania w ogóle, ale niektórzy ludzie umieścić go gdzieś indziej, to prawdopodobnie nie ma tego jednego),devpts
(montowane w/dev/pts
), innetmpfs
przypadki (często spotykane w/dev/shm
,/var/run
,/var/lock
i innych miejscach; tworzenie kopii zapasowych i przywracanie ich powinno być nieszkodliwe, ale bezcelowe, ponieważ ich zawartość jest tracona podczas zamykania), a wszelkie zdalne systemy plików lub magiczne katalogi automounterów (próby ich tworzenia lub przywracania mogą zakończyć się katastrofą, jak to możliwe) kopie zapasowe / przywracanie na innym komputerze ). Powinieneś także uważać na/media
i/mnt
, ponieważ można tam znaleźć urządzenia zewnętrzne (takie jak dysk CD, którego zapomniałeś w napędzie), ale mogłeś również użyć ich celowo, aby zamontować coś, co powinno zostać zarchiwizowane.Należy zauważyć, że inne niż w większości nieszkodliwe
tmpfs
przypadkach, sieciowych systemów plików / automounters i nośników wymiennych, systemy plików nie należy z powrotem wszystkie są potomkami/dev
,/proc
albo/sys
. Jeśli nie masz sieciowych systemów plików (lub automounters) i nie wyłączając nośników wymiennych,/sys
a/proc
i restartu po restore (przetrzećtmpfs
instancji) powinno wystarczyć.źródło
Zobacz Tao kopii zapasowej , rozdział 1.
źródło
Niektóre pliki specjalne w / proc i / sys mylą rsync. Zazwyczaj nie chcesz również tworzyć kopii zapasowych zamontowanych sieciowych systemów plików. Pliki rzadkie mogą również powodować problemy.
Dodaj -x, aby ograniczyć go do jednego systemu plików. Pozwala to uniknąć wszystkich sieciowych systemów plików i / proc itp. Jednak musisz uruchomić jeden program rsync dla każdego zamontowanego systemu plików.
Dodaj -S, aby rozsądnie obsługiwać rzadkie pliki.
źródło
/ boot, / dev i / proc są dość bezużyteczne do tworzenia kopii zapasowych - jeśli jednak wiesz, co robisz, możesz wykonać kopię zapasową / boot.
Nie chciałbym również tworzyć kopii zapasowych / lib, / media, / mnt, / sbin, / bin, / srv, / sys lub / tmp.
/ usr jest opcjonalny, w zależności od tego, czy masz coś w / usr, dla którego warto wykonać kopię zapasową. Gdybym był tobą, najbardziej martwi mnie tworzenie kopii zapasowych $ HOME, / var i / etc (dla plików konfiguracyjnych) użytkownika.
Znowu jednak to wszystko zależy od rodzaju kopii zapasowej, którą chcesz wykonać. Czy to serwer WWW? Czy to komputer osobisty? Czy to serwer powłoki z mnóstwem katalogów w katalogu / home?
źródło
rsync
niemu skopiujesz nie tylko to, czego użyłeś, ale także umożliwisz synchronizację w przyszłości, abyś mógł bezpiecznie uruchomić dla niego zadanie cron.Możesz osiągnąć całkowitą kopię zapasową za pomocą sfdisk i dd.
Aby wykonać kopię zapasową schematu partycji każdego dysku twardego, użyj sfdisk w następujący sposób:
Aby wykonać kopię zapasową każdej partycji, możesz użyć dd:
Gdzie
/dev/sda1
jest odmontowany, na przykład przy rozruchu z płyty CD na żywo.(pamiętaj, że będziesz musiał mieć dużo wolnego miejsca, aby zapisać ten plik; więc możesz chcieć zapisać go na zewnętrznym nośniku) Zrób to dla każdej partycji, pojedynczo i wykonaj kopię zapasową wszystkiego.
Następnie, aby przywrócić na innym komputerze, możesz:
źródło
dd if=/dev/urandom of=/dev/sdb bs=512 count=12
aby wyczyścić MBR i tablicę partycji dysku docelowego.Zamiast wykluczać, zwykle tworzę kopię zapasową tylko tego, czego chcę. W tym:
/home
/etc
/var
(oprócz/var/log
)źródło
Zasadniczo nie trzeba tworzyć kopii zapasowych pseudo-systemów plików (/ proc, / sys, / dev / shm ...).
źródło
Jak wskazała ta wspaniała społeczność:
/ dev / proc / sys / tmp / run / media / lost + found / boot (/ boot jest opcjonalny, patrz inne komentarze)
Dla odniesienia moja ostatnia komenda rsync (w Arch z zewnętrznym nośnikiem zamontowanym w '/ run / media / fred / INTENSO /' i tworzenia kopii zapasowej do folderu o nazwie 'fred') to:
$ sudo rsync -Pazhmxv --exclude / run / media --exclude / dev --exclude / lost + found --exclude / tmp --exclude / proc --exclude / boot --exclude / sys / / run / media / fred / INTENSO / fred /.
(wykluczone pliki można również określić w nawiasach klamrowych (--exclude = {/ dev, / proc}) w Bash lub w pliku tekstowym (--exclude-from = 'excude.txt')).
-P: pokaż postęp -a: tryb archiwizacji -z: kompresuj podczas przesyłania -h: wypisuje liczby w formacie czytelnym dla człowieka -m: przycina puste katalogi -x: ogranicza do jednego systemu plików -v: verbose
źródło
Korzystam z komputera z systemem Ubuntu 18.04 i mam następujące wykluczone:
Ponadto, specjalnie dla mojej konfiguracji, wykluczam te:
źródło
Zazwyczaj mam zwyczaj tworzenia kopii zapasowej wszystkiego w systemie, nawet tego, co wiem na pewno, bezużyteczne do tworzenia kopii zapasowych. Jest prostszy w konfiguracji i możesz być w 100% pewien, że dostaniesz wszystko, czego potrzebujesz, zawarte w kopii zapasowej.
źródło
/proc
i/dev
tak nie mylić biednarsync
.Używam Ubuntu Linux jako serwera testowego do tworzenia stron internetowych i do hostowania dokumentacji wiki. Każdej nocy crontab zrzuca bazę danych MySQL do / var / www, a następnie wszystkie pliki / var / www są archiwizowane i replikowane na serwerze kopii zapasowej. To nie jest idealne, ale wystarczy. W pewnym momencie musiałem odbudować serwer, a tak naprawdę brakowało mi tylko plików konfiguracyjnych Apache i Samba.
źródło
Zakładam, że nie masz Linuksa na maszynie wirtualnej. Jeśli to w ogóle możliwe, zachęcam do rozważenia przejścia na wirtualizację. Kopie zapasowe na poziomie VM to zupełnie nowy poziom spójności i łatwości użytkowania. Istnieją bezpłatne narzędzia do wirtualizacji, więc niekoniecznie musisz inwestować w VmWare lub inne drogie narzędzie potwora.
źródło
Pytanie: Które katalogi należy wykluczyć podczas tworzenia kopii zapasowej serwera?
Oto skrypt, którego często używam, od laptopa Ubuntu 16.04 LTS do serwera Ubuntu 16.04 LTS. Wyraźnie pokazuje, które katalogi należy pominąć podczas tworzenia pełnej kopii zapasowej:
Zwróć uwagę na wykluczenie opcji
/mnt
- gdzie każdy system Ubuntu ma zamontowany dysk do tworzenia kopii zapasowych w pełnym wymiarze godzin, umożliwiającyrsync
4-dniowe tworzenie kopii zapasowych na bazie cron . Te dyski są montowane według wpisówfstab
i są zawsze obecne. Włączenie ich do kopii zapasowej w innym systemie byłoby powielaniem.Podobnie
/media
jest tam , gdzie montuje się dyski USB. Są one tworzone osobno.źródło