Sejf z danymi - Kopia zapasowa zrestic

Dla wielu użytkowników regularne wykonywanie kopii zapasowych to trudne zadanie. Dzięki restic oraz jego graficznej nakładce Restatic, zarządzanie kopiowaniem jest proste, nawet dla początkujących.
Tworzenie kopii zapasowych na wypadek awarii zawsze było najmniej popularnym zadaniem w domowym biurze. Dostępne aplikacje skierowane są w większości do dużych firm, a korzystanie z nich nie sprawia przyjemności, jako że mają zbyt wiele opcji albo są zbyt skomplikowane do wykonywania okazjonalnych kopii. Mały program wiersza poleceń o nazwie restic [1] udowadnia, że kopie da się robić inaczej, a dodatkowo potrafi dostosować się do różnych scenariuszy. Restatic to interfejs graficzny dla programu restic zaprojektowany dla użytkowników domowych, którzy nie chcą pracować w wierszu poleceń. Restatic jest aktualnie rozwijany i wymaga osobnej instalacji. b01-restic-backup Rysunek 1: W czasie tworzenia kopii zapasowej, restic wyświetla mnóstwo informacji. Restic może przechowywać dane na lokalnym komputerze, jak i na innym urządzeniu w domowej sieci lub w chmurze. Szyfruje wszystkie dane z wykorzystaniem AES256, bez względu na miejsce ich przechowywania, eliminując dzięki temu możliwość podglądu przez osoby trzecie. Dodatkowo oprogramowanie to jest niezwykle szybkie, gdyż nie ma narzutu z części graficznej. Jest dzięki temu ciekawym rozwiązaniem również dla okazjonalnych użytkowników. Program możemy pobrać albo ze strony projektu, albo z repozytoriów niemal wszystkich większych dystrybucji. Ponieważ restic został napisany w Go, do instalacji potrzebujemy kompilatora. Pod Debianem/Ubuntu oraz ich pochodnymi powinniśmy wyszukać pakiet golang-go. Po instalacji wywołujemy oprogramowanie za pomocą polecenia restic, po wydaniu którego zobaczymy podsumowanie dostępnym parametrów. Kopia zapasowa Wykonanie lokalnej kopii zapasowej z wykorzystaniem restic składa się z dwóch kroków. Najpierw tworzymy repozytorium dla katalogów, które mają być zarchiwizowane (Listing 1, wiersz 1), a następnie zapisujemy dane w nowo utworzonym archiwum (wiersz 2). Tworząc archiwum możemy określić hasło do repozytorium. Musimy je potwierdzić, wpisując po raz drugi. W czasie tworzenia kopii, restic może poprosić o to hasło w przypadku nowych archiwów. Zapisze wtedy dane w formie zaszyfrowanej. W czasie kopiowania program wyświetla postęp prac w postaci wartości procentowej (Rysunek 1). Aby zapisać kopię zapasową na zewnętrznym serwerze korzystamy z protokołu SFTP. Zamiast lokalnego katalogu podajemy w wierszu poleceń nazwę serwera razem ze ścieżką do katalogu, który ma być utworzony. Kolejne kroki, razem z podaniem hasła, są takie same jak w systemie lokalnym. Dla każdej nowej kopii restic tworzy w katalogu snapshots/ nowy plik w archiwum. Aby wyświetlić jego zawartość korzystamy z polecenia z wiersza 3 z Listingu 1. Wyświetlana w ten sposób tabela podaje numer ID kopii oraz hosta. Narzędzie prezentuje pełną oryginalną ścieżkę kopii, więc szybko zobaczymy z czym mamy do czynienia. Jeśli archiwa z takim samym drzewem katalogów zawierają dane z różnych komputerów, restic wymieni je w kolejności, ale nie wyświetli poszczególnych plików. Więcej szczegółów Aby sprawdzić poszczególne pliki i katalogi w repozytorium, musimy je najpierw zamontować. Program umożliwia kopiowanie pojedynczych plików z kopii, nie musimy więc odzyskiwać od razu całości. Montowanie kopii najlepiej wykonać na katalog tymczasowy o zdefiniowanej wcześniej nazwie. b02-restic-restore Rysunek 2: Zapisywanie danych w restic nie wymaga zbyt wiele pisania.

Listing 1: Tworzenie repozytorium

01 $ restic -r /Ścieżka/Archiwum init

02 $ restic -r /Ścieżka/Archiwum backup /Ścieżka/Pliki

03 $ restic -r /Ścieżka/Archiwum snapshots

04 $ restic -r /Ścieżka/Archiwum mount /Katalog tymczasowy

Listing 2: Przywracanie kopii zapasowej

$ restic -r /Ścieżka/Archiwum restore -t /Ścieżka/Do/Przywrócenia numerID

Jeśli dany katalog nie istnieje, restic zapyta czy powinien go utworzyć przy wywołaniu polecenia mount (Listing 1, wiersz 4). Montowanie realizowane jest zaraz po potwierdzeniu. Jeśli jednak zamontujemy katalogi w trybie tylko do odczytu, nasze możliwości pracy z plikami będą ograniczone. Dodatkowo polecenie do montowania kopii pozostaje aktywne w terminalu, więc wszystkie prace zmuszeni jesteśmy wykonywać w osobnej karcie lub oknie. Po zakończeniu pracy powinniśmy odmontować tymczasowy katalog, gdyż restic nie zamknie się, zanim tego nie zrobimy. b03-restic-restatic Rysunek 3: Na kilku kartach Restatic zebrał wszystkie funkcje restic. b04-restic-restatic-schedule Rysunek 4: Restatic bez problemu i automatycznie potrafi kopiować dane w określonych punktach czasowych. Dodatkowe parametry pozwalają na wykonanie różnych zadań z wykorzystaniem skopiowanych katalogów. Możemy na przykład, korzystając z opcji forget, usuwać poszczególne kopie z repozytorium. Dzięki usuwaniu przestarzałych kopii, szczególnie z automatycznych przebiegów programu, utrzymamy porządek w archiwum. Ponieważ restic zawsze tworzy pełne kopie i różnice między nimi nie są widoczne na pierwszy rzut oka. Pomoże nam tu opcja diff, która pokazuje różnice w danych pomiędzy kopiami. Z kolei check weryfikuje integralność danych. Dokładna składnia dla poszczególnych opcji przedstawiona jest po wydaniu następującego polecenia:

restic--help

Zwraca ono szczegółowy opis wykorzystania danej opcji. Przywracanie kopii zapasowej Aby przywrócić kopię zapasową, potrzebować będziemy jej numeru ID, o ile mamy ich więcej niż jedną. Najpierw wyświetlamy kopie zapasowe (Listing 1, wiersz 3). Dzięki wyświetlonym ścieżkom widzimy, jaki numer ID mają poszczególne kopie. Następnie wydajemy polecenie z Listingu 2, aby przywrócić dane z kopii. Restic skopiuje dane do określonej ścieżki, automatycznie tworząc podkatalogi, jeśli ich nie ma (Rysunek 2). Skrypty Ponieważ restic obsługuje też zmienne, możemy skorzystać z tego narzędzia do regularnego kopiowania danych za pomocą skryptów. Mogą one być wykonywane w zadaniach cron, w oparciu o zegar. Najlepiej jest zdefiniować zmienną środowiskową dla hasła i ścieżki do zapisywania kopii. Dzięki temu, że oprogramowanie ma dostęp do wszystkich naszych pamięci masowych i systemów plików daje nam możliwość przenoszenia danych na przykład na serwer NAS, przez SFTP. Jeśli jednak nasz dysk jest powolny lub mamy mało wydajne łącze, prędkość wykonywania kopii zapasowej będzie znacznie mniejsza niż w przypadku lokalnego systemu plików. Interfejs graficzny Restatic [2], czyli graficzny interfejs dla restic, jest rozwijany już od jakiegoś czasu. Aplikacja powstała w Pythonie, a znajdziemy ją na GitHubie. Jako podstawy potrzebuje Pythona w wersji 3.6 lub wyższej. Wiele dystrybucji z dłuższym wsparciem posiada nawet starsze wersje tego języka i wtedy, zanim będziemy mogli korzystać z programu, musimy wykonać aktualizację. Po instalacji wywołujemy aplikację wpisując w wierszu poleceń restatic. W oknie programu, które wtedy się pojawi, mamy dostęp do poszczególnym funkcji w dobrze zdefiniowanej strukturze kart (Rysunek 3). Musimy przestrzegać tej samej kolejności, co w przypadku programu wiersza poleceń. Dodatkowo, korzystając z pola Current Profile:, możemy zdefiniować profile. Jest to szczególnie przydatne przy większych instalacjach z różnorodnymi bazami danych. Następnie możemy zdefiniować repozytorium dla kopii. Aby to zrobić klikamy na pole Repository na karcie Repository i wybieramy jedną z opcji. Abyśmy mogli dodać istniejące repozytoria, program wyświetli osobne okno dialogowe. Z jego pomocą dołączymy kolejne archiwa. Restatic wspiera połączenia z zewnętrznymi serwerami. W ten sam sposób możemy skorzystać z pola SSH Key:, aby podać, w zależności od kontekstu, czy korzystać z istniejącego klucza, czy też wygenerować nowy. Następnie przechodzimy do karty Sources, gdzie określimy katalogi do skopiowania. Aby to zrobić korzystamy z przycisku Add Folder i dodajemy do listy poszczególne katalogi. W dwóch dolnych segmentach okna możemy zdefiniować wykluczenia dla katalogów i plików, których nie chcemy kopiować. Po naciśnięciu przycisku Start Backup (na dole z lewej) Restatic rozpocznie tworzenie kopii zapasowej i wyświetli pasek postępu. Musimy wtedy kliknąć na przycisk Refresh na karcie Archives, aby zobaczyć kopie w repozytorium. Przyciski Extract, Check, Mount oraz Prune dają nam możliwość pracy z kopiami. W tym oknie możemy wybrać jak wiele starych archiwów chcemy zachować. Aby uruchomić w przyszłości automatyczne tworzenie kopii zapasowej, przechodzimy do karty Schedule. Tutaj możemy za pomocą jednego przycisku określić jak często Restatic powinien zapisywać dane z wcześniej określonych katalogów źródłowych do aktywnego repozytorium. Eliminuje to konieczność tworzenia skryptu lub zadania cron do automatyzacji tworzenia kopii. Po wybraniu Apply, Restatic dodaje dane i aktywuje automatyczną akcję wykonywania kopii zapasowej (Rysunek 4). Wnioski Restic eliminuje zastrzeżenia użytkowników co do wiersza poleceń konsekwentnie stosując prostą składnię dla każdej z opcji. Narzędzie to jest bardzo atrakcyjne, ponieważ jest szybkie i przede wszystkim stosuje szyfrowanie, co oznacza, że nic nie stoi na przeszkodzie, aby kopiować dane do chmury. Z pomocą automatycznych, czasowo kontrolowanych kopii oraz możliwości wykorzystania lokalnych serwerów SFTP, oprogramowanie może być użyteczne w dużych instalacjach. Interfejs graficzny Restatic pozwala tworzyć kopie w prosty sposób, za pomocą jednego przycisku. Info [1] restic: https://restic.net [2] Restatic: https://github.com/Mebus/restatic


Erik Baerwaldt

Zaloguj się, aby dodać komentarz

Nie masz konta? Zarejestruj się »

Zobacz także

Skuteczne narzędzia do wykrywania uszkodzonych podzespołów

pobierz

Wykrywanie i usuwanie niechcianych programów

pobierz

Polecane artykuły

Array ( [docId] => 50144 )

Array ( [docId] => 50144 )