Backup za pomocą rsync

Backup za pomocą rsync

rsync jest pro­tokołem stosowanym w sys­temach UNIX/Linux który umożli­wia nieoce­nione możli­woś­ci dla back­upu i syn­chro­niza­cji danych. Z jego zas­tosowaniem moż­na kopi­ować pli­ki lokalnie a w połącze­niu z SSH zdal­nie, kopi­u­jąc pli­ki do zdal­nego hosta.

W pier­wszej kole­jnoś­ci będzie konieczność insta­lacji (lub aktu­al­iza­cji) klien­ta rsync. Na sys­temach Redhata konieczne będzie wydanie komendy „yum install rsync” a na Debianowych dys­try­buc­jach wydanie polece­nia: “sudo apt-get install rsync.”

rsync a back­up lokalny

W tej częś­ci artykułu będziemy kopi­ować pli­ki z Katalogu1 do Katalogu2. Oba kat­a­lo­gi są na tym samym HDD, mech­a­nizm ten powinien dzi­ałać na różnych dyskach zain­stalowanych w systemie.

Przyjrzyjmy się poleceniu:

$ rsync ‑av –delete /Katalog1/ /Katalog2/

Polecenie te będzie syn­chro­ni­zowało zawartość Katalogu1 do Katalogu2. Jeżeli rsync zna­jdzie plik w Katalogu1 który został zmieniony, stwor­zony, lub usunię­ty, to będzie wymuszał zmi­any w Katalogu2

Istnieje kil­ka przełączników (switchy) tego polecenia.

1.-a = recur­sive (rekurenc­ja kat­a­logów), links (kopi­owanie zawartoś­ci linków i sym­linków), perms (zachowywanie uprawnień), times (zachowu­je czas mody­fikacji), group (zachowu­je przy­należność do grup), own­er (zachowu­je właściciela),
2. ‑v = ver­bose. Przełacznik umożli­wia wyświ­etle­nie infor­ma­cji na tem­at każdego kopi­owanego pliku.
3. –delete = rsync będzie usuwał pli­ki w Katalogu2 które nie są w Katalogu1.

rsync back­up na zdalne serwery

rsync może być skon­fig­urowany w różny sposób w celu real­iza­cji back­upu zdal­nego. Praktycznym sposobem (łatwym i bez­piecznym) jest meto­da tunelin­gu rsync przez SSH.
Większość ser­w­erów i klien­tów posi­a­da zain­stalowany SSH, trze­ba zad­bać jedynie o to aby był zdal­ny dostęp do takiego ser­w­era z zewnątrz. W tym celu na routerze musi być otwarty port 22 (SSH) TCP do ser­w­era zdalnego.

Instalujemy więc SSH i rsync‘a

# yum ‑y install ssh rsync

# sudo apt-get install ssh rsync

Wydajemy podob­ną komendę rsync jak to było w przy­pad­ku back­upu lokalnego, ale uzu­peł­ni­amy o tunel­ing SSH. Dla użytkown­i­ka “ringo” z połącze­niem do ser­w­era 195.205.159.5” i zas­tosowaniem przełączników wymienionych wyżej, polece­nie będzie miało postać:

$ rsync ‑av –delete ‑e ssh /Katalog1/ ringo@195.205.159.5:/Katalog2/

Jeżeli SSH słucha na por­cie 12345 określamy dodatkowo port:

If you have SSH lis­ten­ing on some port oth­er than 22, you would need to spec­i­fy the port num­ber, such as in this exam­ple where I use port 12345:

$ rsync ‑av –delete ‑e 'ssh ‑p 12345' /Katalog1/ ringo@195.205.159.5:/Katalog2/

$ rsync ‑av –delete ‑e 'ssh ‑p 12345' /Directory1/ geek@192.168.235.137:/Directory2/

Automatyzacja back­upu rsync

W celu automatyza­cji polece­nia rsync moż­na wyko­rzys­tać cron sys­te­mu linux.

W celu edy­cji tabeli cron dla użytkown­i­ka zal­o­gowanego w sys­temie wyda­je­my polecenie:

$ crontab –e

Następujące polece­nie będzie wywoły­wało rsync’a każdego dnia o godzinie 22:00

0 22 * * * rsync ‑av –delete /Directory1/ /Directory2/

Inne użyteczne opcje

Jedną z nich jest umieszcze­nie back­upu w pliku zip. Poniższe polece­nie przed­staw­ia zas­tosowanie tej opcji.

$ zip /katalog/archive.zip /Katalog1/ && rsync ‑av –delete /katalog/ /Katalog2/

Tags: ,

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Zadzwoń teraz!