Synchronizacja danych w Linuksie przy pomocy rsync
Program rsync[1] umożliwia w Linuksie jednokierunkową synchronizację danych katalogu źródła z katalogiem docelowym. Oba katalogi mogą się znajdować w różnych komputerach (synchronizacja odbywa się przez sieć).
Przykład: Synchronizacja danych w celu backupu
Często program rsync wykorzystywany jest do backupu. Za pośrednictwem następującego, przykładowego polecenia katalog /home/ serwera server.example.com zostaje zsynchronizowany z katalogiem /mnt/server-mirror/home/ lokalnej maszyny. Transfer danych odbywa się przez SSH:
rsync -av --delete -e ssh root@server.example.com:/home/ /mnt/server-mirror/home/
Jeżeli rsync ma być wykorzystywany w skrypcie to uwierzytelnienie może zostać przeprowadzone przez klucz SSH:
rsync -av --delete -e "ssh -i /home/user/.ssh/sshkey" root@server.example.com:/home/ /mnt/server-mirror/home/
Wskazane opcje rsync mają następujące znaczenie:
- -a (skrót dla --archive): takie samo znaczenie jak -rlptgoD
- -r (skrót dla --recursive): kopiowanie podkatalogów
- -l (skrót dla --links): kopiowanie symbolicznych linków
- -p (skrót dla --perms): zachowanie uprawnień pliku źródłowego
- -t (skrót dla --times): zachowanie czasów pliku źródłowego
- -g (skrót dla --group): zachowanie uprawnień grupowych pliku źródłowego
- -o (skrót dla --owner): zachowanie prawa własności do pliku źródłowego (możliwe jedynie jako root)
- -D (skrót dla --devices --specials): zachowanie plików urządzenia pliku źródłowego (możliwe jedynie jako root)
- -v (skrót dla --verbose): pokazuje podczas wykonywania, które pliki są synchronizowane
- --delete: usuwa pliki w katalogu docelowym, które w międzyczasie nie są już obecne w katalogu źródłowym
Wersja backupu z rdiff-backup
W przypadku gdy w katalogu źródłowym pomyłkowo zostanie usunięty jeden plik i następnie przeprowadzony rsync to ten plik jest oczywiście również nieobecny w katalogu docelowym. W takich przypadkach optymalnym uzupełnieniem rsync jest rdiff-backup.
Odnośniki
Dalsze informacje
- http://pl.wikipedia.org/wiki/Rsync
- http://linuxwiki.de/rsync (j. niemiecki)
- http://wiki.ubuntuusers.de/rsync (j. niemiecki)
- http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/08/Garantiert-gleich (j. niemiecki)