czwartek, 24 maj 2012
NEXT / Artykuły / NEXT 1/2009 / Artykuły z NEXT 1/2009 / Zawsze aktualne dane

NEXT 1/2009 - Zawsze aktualne dane

Zawsze aktualne dane - ikonka jak zsynchronizować dane w Linuksie

Data: 16 grudzień 2008
Identyfikator: 090106

Dzięki narzędziom rsync i unison możesz mieć zawsze aktualne dane na wielu komputerach. Wystarczy wykorzystać je np. do codziennego backupu lub synchronizacji plików między laptopem a stacją roboczą.

Strona 1 z 2
< Poprzednia 1 2 Następna >

Tworzenie kopii danych jest czynnością ważną, ale uciążliwą. Wykorzystując darmowe narzędzie rsync, możesz w pełni zautomatyzować proces backupu lub kopiowania plików między komputerami, oszczędzając przy tym czas, zasoby i pieniądze. Do synchronizacji danych między komputerami możesz użyć programu unison.

Narzędzie rsync może replikować pliki i katalogi między dwoma lokalizacjami w obrębie tego samego komputera oraz przez sieć. Ma wiele zalet, które dają mu przewagę nad ręcznym kopiowaniem danych lub używaniem do tego celu innych protokołów, np. FTP. Jedną z nich jest szybkość – rsync wykorzystuje własny algorytm kopiujący tylko tę część pliku, która została zmieniona, bez konieczności transmisji całego zbioru. Dodatkowo w połączeniu z funkcjonalnością usługi ssh umożliwia zaszyfrowanie danych, co zapewnia odpowiednio wysoki poziom bezpieczeństwa nawet w przypadku wykonywania kopii przez internet. Dodatkowo ssh umożliwia kompresję przesyłanych danych.

Konstruujemy prosty skrypt

Załóżmy, że masz dwa komputery – laptop i stacjonarny. Na obydwu zainstalowano system Linux i oba są poprawnie połączone w LAN-ie. Chcesz, aby kluczowe dane gromadzone na laptopie były kopiowane każdego dnia na stację roboczą pełniącą tutaj funkcję urządzenia do backupu. Całe zadanie ma być zautomatyzowane, a backup wykonywany regularnie o 22.00. W tym celu należy skonstruować prosty skrypt kopiujący dane z katalogu np. /home/janek do wydzielonego na komputerze stacjonarnym folderu /home/janek/backup.

Rsync komunikuje się ze zdalnym systemem na dwa sposoby – z wykorzystaniem usługi TCP działającej na odległej maszynie na standardowym porcie 873 lub poprzez serwer zdalnego dostępu do powłoki ssh. My opiszemy ten drugi. Przyjmijmy, że na komputerze, na który będziesz wysyłać dane, zainstalowałeś i skonfigurowałeś usługę ssh. W poradzie wykorzystamy Linuksa Ubuntu. Aby zainstalować rsync, wydaj polecenie sudo apt-get install rsync. Narzędzie rsync obsługiwane jest z wiersza poleceń. Nasze przykładowe wywołanie programu, uruchamiane z poziomu laptopa, może wyglądać następująco:

rsync -ave ssh /home/janek/ janek@192.168.1.5:/home/janek/backup/

Aplikacja rsync przyjmuje jako argumenty szereg parametrów wywołania. W omawianym przykładzie są to -a (--archive, tryb archiwizacji), -v (--verbose, wyświetla więcej komunikatów) oraz -e ssh (typ połączenia). Dopiero po nich deklarujesz ścieżki obu lokalizacji, tutaj lokalnego katalogu oraz adres i ścieżka na odległym serwerze. My posłużyliśmy się adresem IP komputera stacjonarnego, ale możesz użyć tutaj skróconej nazwy komputera lub pełnej nazwy domenowej.

Użyty w przykładzie -a wywołuje tak zwany typ archiwizacji, zastępując kilka innych przełączników rsynka: -rlptgoD. Parametr -r (--recursive) wymusza na narzędziu rsync rekursywne kopiowanie katalogów, czyli także wraz z zawartymi w nim podzbiorami. Zachowane zostaną wszystkie dowiązania symboliczne -l (--links), urządzenia i pliki specjalne -D (--devices --specials), znaczniki czasu -t (--times), uprawnienia do obiektów
-p (--perms) oraz informacje o właścicielu
-o (-owner) i grupie -g (--group).

Narzędzie rsync dysponuje znacznie dłuższą listą przełączników niż tutaj wymienione. Opis wszystkich znajdziesz w podręczniku man rsync. Przyjrzyjmy się jeszcze kilku z nich na przykładzie poniższej komendy:

rsync -aqze ssh --delete
--exclude „*bak” --exclude
„*~” /home/janek/ janek@192.168.1.5:/home/janek/backup/

Przełącznik -v (tryb gadatliwy) został zastąpiony parametrem -q (quiet mode, tryb cichy). Narzędzie rsync nie będzie generowało żadnych komunikatów, co okaże się przydatne w przypadku wywoływania programu z poziomu skryptów. Parametr -z (--compress) wymusza włączenie kompresji podczas transmisji danych, natomiast użycie opcji --delete sprawi, że z lokalizacji docelowej będą kasowane pliki, które nie istnieją już w lokalizacji źródłowej. Za pomocą przełącznika --exclude możesz definiować nazwy plików, które zostaną pominięte w procesie kopiowania, posługując się także wyrażeniami regularnymi. W naszym przykładzie będą to pliki tymczasowe i kopii zapasowych kończące się ciągiem bak lub symbolem ~.


Tagi: linux   porady  
Ocena: +++++    (aby ocenić, musisz się zalogować w serwisie)

< Poprzednia 1 2 Następna >

Podobne artykuły:

Komentarze:

Redakcja nie ponosi odpowiedzialności za treść komentarzy.
Nikt jeszcze nie skomentował.
Niezalogowany

Aby mieć dostęp do niektórych części serwisu NEXT (np. forum dyskusyjnego, oceny numeru, newslettera), musisz posiadać konto w naszym serwisie. Zachęcamy do darmowej rejestracji!

Jeżeli posiadasz już konto w serwisie, to zaloguj się.