praktyka
Rsnapshot - Tworzenie kopii bezpieczeństwa danych
64
maj 2007
praktyka
Rsnapshot - Tworzenie kopii bezpieczeństwa danych
65
www.lpmagazine.org
lin
ux
@
so
ftw
ar
e.
co
m
.p
l
Tworzenie kopii
bezpieczeństwa danych
Jeżeli kiedykolwiek utraciłeś jakieś dane to doskonale wiesz jaką ważną rzeczą jest robienie kopii
bezpieczeństwa danych. Robienie kopii ręcznie jest sprawą dość męczącą, jednak można to
zautomatyzować. Opiszę tutaj jak skonfigurować rsnapshot, który jest bardzo dobrym i o potężnych
możliwościach, programem do robienia kopii bezpieczeństwa danych. Jest wiele innych programów tego
rodzaju, jednak ja skupię się tutaj tylko i wyłącznie na rsnapshot, który jest moim ulubionym narzędziem
tego typu. Używam go z powodzeniem przez bardzo długi okres i jeszcze nigdy się na nim nie zawiodłem.
Damian Labuda
A
by używać narzędzia rsnapshot trzeba je
najpierw zainstalować. Uczynimy to wy-
dając w konsoli na przykład:
aptitude in-
stall rsnapshot
. Po poprawnym zainsta-
lowaniu pakietu, czeka nas jego konfiguracja. Cały pro-
ces konfiguracji będzie się odbywał w plikach teksto-
wych. Konfiguracja rsnapshot znajduje się w pliku
/etc/rsnapshot.conf. Plik ten należy otworzyć z uprawnie-
niami administratora w dowolnym edytorze, na przy-
kład za pomocą vim'a:
vim /etc/rsnapshot.conf
. Te-
raz odnajdujemy w otwartym pliku linijkę snapshot_ro-
ot. Zmienna snapshot_root pozwala na zdefiniowanie
katalogu, w którym będą przechowywane kopie da-
nych. Wartość ta musi wskazywać na punkt monto-
wania urządzenia, na którym wykonana ma być kopia
danych. Jeżeli montujesz jakiś zewnętrzny, wymien-
ny dysk twardy, na przykład pendrive, jako /mnt/dysk,
to powinieneś zmienić odpowiedni wpis w pliku na:
snapshot_root /mnt/dysk
. Możemy również usta-
wić aby nasza kopia była robiona na aktualnym dysku,
to znaczy, nie będzie robiona na innych wymiennych
dyskach. Jeżeli zdecydujemy się na powyższe, to nale-
ży zmienić zmienną snapshot_root na na przykład:
snap-
shot_root /home/ty/rsnapshot
. Oznacza to, że nasza
kopia bezpieczeństwa będzie umieszczana w /home/ty/
rsnapshot.
Automatyczne
wykonywanie kopii
Teraz rozpoczyna się najważniejsza część konfiguracji.
Musimy ustawić w jakich odstępach czasu będzie robio-
na kopia danych. Rsnapshot będzie mógł robić kopie da-
nych w takim czasie jaki mu wyznaczymy. Jest to bardzo
wygodne, ponieważ nie musimy się przejmować tym, że
zapomnieliśmy zrobić kopię itp. Warunkiem jest to, że
musi być oczywiście włączony komputer. Jeśli chcesz aby
kopia była wykonywana:
• co cztery godziny (sześć razy na dobę),
• raz dziennie, każda przechowywana przez tydzień,
• trzy razy w tygodniu, każda przechowywana przez
trzy tygodnie,
• trzy razy w miesiącu, każda przechowywana przez
trzy miesiące,
praktyka
Rsnapshot - Tworzenie kopii bezpieczeństwa danych
64
maj 2007
praktyka
Rsnapshot - Tworzenie kopii bezpieczeństwa danych
65
www.lpmagazine.org
to w pliku konfiguracyjnym rsnapshot od-
najdujemy poniższe linijki i usuwamy ko-
mentarze (komentarz to znak #) tak aby
konfiguracja wyglądała w ten sposób:
interval hourly 6
interval daily 7
interval weekly 3
interval monthly 3
No dobrze, ale na pewno zastanawiasz się
co zrobić jeżeli samemu chcesz robić kopię
za pomocą rsnapshot. Służy do tego odpo-
wiednie polecenie, o którym wspomnę póź-
niej. Dodam tylko, że nie jest ważne czy sa-
mi będziemy robić kopię, czy ustawimy na
automatyczne robienie kopii - i tak trze-
ba mieć odhaszowany przynajmniej jeden
z wyżej podanych interwałów.
Ostatnim etapem konfiguracji pliku
rsnapshot jest zdefiniowanie katalogów,
których zawartość powinna być kopiowa-
na. To tutaj ustalamy jakie pliki czy katalo-
gi mają być kopiowane. Przykładowy wpis,
a dokładniej taki, który ja mam, wygląda
tak:
# LOCALHOST
#backup /home/ localhost/
backup /etc/ localhost/
backup /usr/local/ localhost/
#backup /etc/passwd localhost/
Poszukaj w aktualnie otwartym pliku po-
dobnych linii (powinno być to gdzieś na
końcu pliku). Wyżej przedstawiony wpis
oznacza, że:
• będzie robiona kopia katalogu /etc
• będzie robiona kopia katalogu /usr/local
• nie będzie robiona kopia katalogu /home
ponieważ linijka ta jest komentarzem
(znak #), a wszelkie komentarze są igno-
rowane,
• nie będą robione żadne inne kopie, które
są oznaczone jako komentarz.
Oczywiście możesz zdefiniować tutaj wła-
sne katalogi. W tym momencie upewnij się,
że wszystko zrobiłeś dobrze, po czym zapisz
plik. Jeżeli plik ten zmieniałeś za pomocą vi-
m'a to aby zapisać i wyjść z edytora wciśnij
Esc i wpisz :wq.
Będąc dalej zalogowanym jako root
wydajemy w konsoli polecenie:
rsnapshot
configtest
. Powinieneś otrzymać taki ko-
munikat: Syntax OK. Jeżeli tak właśnie się
stało, to oznacza to, że poprawnie skonfi-
gurowałeś rsnapshot. Jeżeli nie otrzymałeś
takiego komunikatu to oznacza to, że pod-
czas konfiguracji popełniłeś jakiś błąd.
Otwórz więc ponownie plik /etc/rsnapshot.
conf i znajdź miejsca gdzie zrobiłeś błędy,
a następnie popraw je.
Ostatnim etapem, także bardzo ważnym,
jest skonfigurowanie cron'a. Cron w sys-
temach uniksowych jest demonem, który
wywołuje inne programy w odpowiednim
czasie. To właśnie dzięki niemu kopia bę-
dzie robiona w odpowiednim czasie. To
co ustawiliśmy w /etc/rsnapshot.conf to tyl-
ko informacja, że kopia ma być robiona
o danym czasie. Teraz to wszystko musi-
my potwierdzić. Jako root otwieramy plik
/etc/cron.d/rsnapshot i usuwamy znaki ko-
mentarza z następujących linii:
0 */4 * * * root /usr/bin/
rsnapshot hourly
30 3 * * * root /usr/bin/
rsnapshot daily
0 3 * * 1 root /usr/bin/
rsnapshot weekly
30 2 1 * * root /usr/bin/
rsnapshot monthly
Twój plik może się troszeczkę różnić od
mojego. Wynika to z tego, że możesz mieć
inaczej ustawione ilości robionych kopii.
Ręczne wykonywanie kopii
Wspominałem wcześniej, że kopie nie mu-
szą być robione automatycznie. Być może
nie chcesz, żeby kopia była robiona auto-
matycznie, ale tylko i wyłącznie na Twoje
polecenie. W takim wypadku podany wy-
żej wpis w /etc/cron.d/rsnapshot możesz,
a raczej powinieneś, zakomentować. Na-
tomiast kopię będziesz robił poleceniem
rsnapshot daily
. Polecenie to musisz
wykonać jako root. Przyznam się, że aktu-
alnie korzystam z tego sposobu robienia
kopii, choć dawniej używałem do tego
cron'a. Nie oznacza to jednak, że robienie
kopii za pomocą cron'a jest gorsze. Dla po-
czątkujących użytkowników jest to wręcz
zalecane.
Należałoby jeszcze wspomnieć o jednej
bardzo ważnej rzeczy. Rsnapshot pierw-
szą kopię robi pełną, to znaczy, zrobi kopię
wszystkich podanych plików i katalogów.
Jednak z następnymi kopiami jest trochę in-
aczej. Mianowicie rsnapshot nie zrobi ko-
lejnej pełnej kopii jednak zrobi tylko kopię
tych plików, które uległy zmianie, a reszty
nie będzie ruszać. Mogłoby się wydawać,
że jest to złe rozwiązanie, ale jest zupełnie
odwrotnie. Wyobraź sobie, że robisz kopię
co 30 minut, całego katalogu /etc i /var. Gdy-
by wszystkie pliki miałyby być kopiowane co
30 minut, to po dwóch dniach byś już nie miał
miejsca na kolejne kopie. Dlatego właśnie
rsnapshot postępuje w podany wyżej sposób
– żeby zaoszczędzić miejsce na dysku.
Aby odzyskać dany plik, pliki czy folde-
ry musisz udać się do katalogu, gdzie zapi-
sywana jest kopia i następnie odnaleźć po-
trzebną rzecz i ją skopiować.
Podsumowanie
Oczywiście rsnapshot możemy skonfigu-
rować według własnych wymagań. Tutaj
przedstawiłem tylko przykład konfiguracji.
Osobom, którym sposób konfiguracji poka-
zany przeze mnie w artykule nie jest wy-
starczający, odsyłam do podręcznika rsnap-
shot (
man rsnapshot
), oraz do oficjalnej
strony internetowej: http://www.rsnapshot.org/
Dodam jeszcze, że sam plik /etc/rsnapshot.conf
jest bogato zaopatrzony w pożyteczne ko-
mentarze.
Rysunek 1.
Rsnapshot w akcji