Sigurnosno kopiranje podataka između poslužitelja
Ovaj vodič objašnjava kako kopirati i sigurnosno kopirati podatke između Linux poslužitelja pomoću rsync, kao i kako izvesti niskorazinsko kloniranje diskova pomoću dd.
Prije početka
Naredbe u ovom vodiču izvršavaju se na izvornom poslužitelju, odnosno poslužitelju s kojeg kopirate podatke. Odredišni poslužitelj mora biti dostupan putem SSH-a, a korisnik naveden u naredbi mora imati pravo čitanja izvornog puta i pravo pisanja na odredišni put.
Kako biste provjerili SSH pristup odredišnom poslužitelju prije pokretanja sigurnosnog kopiranja:
ssh user@destination_host
Zamijenite user korisničkim imenom na udaljenom poslužitelju, a destination_host IP adresom ili nazivom računala odredišnog poslužitelja.
Za automatske ili zakazane sigurnosne kopije konfigurirajte autentifikaciju putem SSH ključeva umjesto korištenja lozinki.
Kopiranje direktorija na udaljeni poslužitelj
Imajte na umu da završna kosa crta u izvornoj putanji utječe na ponašanje rsync-a: /source/ kopira sadržaj direktorija, dok /source kopira sam direktorij.
Uvijek koristite --dry-run prije pokretanja naredbi s opcijom --delete kako biste izbjegli slučajni gubitak podataka. Za pregled onoga što će biti preneseno bez unošenja promjena:
rsync -a --delete --dry-run -e ssh /path/to/source/ user@destination_host:/path/to/backup/
Nakon što provjerite rezultat, pokrenite istu naredbu bez --dry-run. Dodajte -P kako biste omogućili nastavak prekinutog prijenosa i prikaz napretka:
rsync -a --delete -e ssh -P /path/to/source/ user@destination_host:/path/to/backup/
Opcija -a čuva dozvole, vremenske oznake i simboličke poveznice. Opcija --delete osigurava da odredište bude točna kopija izvora uklanjanjem datoteka koje ne postoje na izvoru. Dodajte -v kako biste prikazali detaljne informacije.
Opcija --delete uklonit će s odredišta datoteke koje ne postoje na izvoru. Nemojte je koristiti ako se na odredištu nalaze datoteke koje treba neovisno sačuvati.
Kopiranje većine sistemskih datoteka
Za kopiranje većeg dijela datotečnog sustava uz izuzimanje virtualnih i privremenih direktorija:
rsync -aAXv --delete --one-file-system --numeric-ids \ --exclude={/dev/,/proc/,/sys/,/tmp/,/run/,/mnt/,/media/,/lost+found,/swapfi le} \ / user@destination_host:/path/to/backup/
Korištene opcije: -a čuva dozvole, vremenske oznake, simboličke poveznice i izvodi rekurzivno kopiranje; -A čuva ACL-ove; -X čuva proširene atribute; -v prikazuje detaljne informacije. Opcija -H za tvrde poveznice namjerno je izostavljena: sistemske tvrde poveznice nije potrebno replicirati u udaljenoj sigurnosnoj kopiji, a njihovo očuvanje povećava vrijeme i složenost prijenosa. Opcija --one-file-system sprječava rsync da prijeđe na druge montirane datotečne sustave. Opcija --numeric-ids čuva UID i GID vrijednosti bez njihovog mapiranja na korisnička imena, što je važno kada izvorni i odredišni poslužitelji imaju različite konfiguracije korisnika.
Većina izuzetih putanja koristi završnu kosu kako bi se isključio sadržaj direktorija, dok sam direktorij ostaje. /lost+found nema završnu kosu jer se treba isključiti cijeli direktorij, a ne samo njegov sadržaj. Isto pravilo vrijedi i za izvornu putanju: /source/ kopira sadržaj direktorija, dok /source kopira sam direktorij.
Ova metoda ne stvara pokretačku sliku sustava i ne smije se koristiti kao zamjena za potpunu sigurnosnu kopiju sustava. Za konzistentne sigurnosne kopije aktivnih sustava razmislite o zaustavljanju kritičnih usluga ili korištenju snimki datotečnog sustava, kao što su LVM snimke, prije pokretanja naredbe.
Potpuno kloniranje direktorija pomoću rsync-a
Za potpuno kloniranje stabla direktorija uz očuvanje tvrdih poveznica, ACL-ova i proširenih atributa:
rsync -aAHXv /source/dir/ user@destination_host:/destination/dir/
Korištene opcije: -a čuva dozvole, vremenske oznake, simboličke poveznice i izvodi rekurzivno kopiranje; -A čuva ACL-ove; -H čuva tvrde poveznice, što je važno za točno kloniranje direktorija; -X čuva proširene atribute; -v prikazuje detaljne informacije.
Kloniranje diska pomoću dd
Za kloniranje cijelog diska na drugi disk na istom poslužitelju:
dd if=/dev/sdX of=/dev/sdY bs=1M conv=noerror,sync status=progress
Zamijenite sdX izvornim diskom, a sdY odredišnim diskom. Opcije conv=noerror,sync omogućuju nastavak kopiranja nakon pogrešaka pri čitanju popunjavanjem oštećenih blokova nulama. Ako je integritet podataka kritičan, izostavite te opcije kako bi se dd zaustavio na prvoj pogrešci umjesto da oštećene blokove neprimjetno zamijeni nulama.
Za kloniranje diska na udaljeni poslužitelj putem SSH-a:
dd if=/dev/sdX bs=1M status=progress | ssh user@destination_host 'dd of=/dev/sdY bs=1M'
Odredište može biti i putanja do datoteke umjesto blok uređaja.
dd izravno zapisuje na odredišni uređaj ili u odredišnu datoteku bez traženja potvrde. Prije pokretanja naredbe pažljivo provjerite izvor i odredište. Na aktivnim sustavima, ako je moguće, odmontirajte sve particije izvornog diska ili ih ponovno montirajte samo za čitanje. Za konzistentne sigurnosne kopije montiranih datotečnih sustava koristite LVM snimke ili pokrenite sustav iz okruženja za oporavak.
Provjera sigurnosne kopije
Nakon prijenosa povežite se s odredišnim poslužiteljem i provjerite veličinu sigurnosne kopije i njezinu osnovnu strukturu:
ssh user@destination_host du -sh /path/to/backup/ ls /path/to/backup/
Za detaljnu provjeru integriteta pokrenite rsync s opcijama --checksum i --dry-run. To uspoređuje sadržaj datoteka umjesto vremenskih oznaka i prijavljuje sve razlike:
rsync -av --checksum --dry-run /path/to/source/ user@destination_host:/path/to/backup/
Imajte na umu da ovaj postupak može trajati znatno dulje od uobičajenog pokretanja rsync-a na velikim skupovima podataka.