Content
- Więcej o Rsync
- Opcje narzędziowe
- Krótkie wyjaśnienie składni
- Kopiowanie jednego pliku do folderu w zdalnej pamięci masowej
- Kopiowanie folderu do folderu w zdalnej pamięci masowej
- Kopiowanie zawartości folderu lokalnego do folderu w zdalnej pamięci masowej
- Kopiowanie folderu ze zdalnej pamięci masowej do folderu na serwerze lokalnym
- Kopiowanie zawartości folderu ze zdalnej pamięci masowej do folderu na serwerze lokalnym
- Kopiowanie zawartości folderu z wyłączeniem i/lub uwzględnieniem plików
- Kopiowanie tylko plików, które różnią się od plików w folderze docelowym
- Używanie Rsync przez SSH z niestandardowym portem SSH
Kopiowanie i tworzenie kopii zapasowych plików i folderów przy użyciu narzędzia Rsync
Więcej o Rsync
Rsync to szybkie i wszechstronne narzędzie do kopiowania plików i folderów. Narzędzie może kopiować dane zarówno lokalnie, jak i do innych hostów, w tym Cloud Storage od Introserv.
Opcje narzędzia pozwalają kontrolować wiele aspektów kopiowania danych i tworzenia kopii lustrzanych.
Jedną z głównych funkcji jest możliwość kompresji danych podczas wysyłania, co pozwala przyspieszyć proces kopiowania między serwerami.
Kolejną zaletą jest wyjątek podczas kopiowania identycznych plików. W związku z tym kopiowane lub przesyłane będą tylko różne pliki, co niewątpliwie pozwoli zaoszczędzić czas synchronizacji dużych katalogów.
Opcje narzędziowe
Przyjrzyjmy się przykładom użycia Rsync do kopiowania plików i katalogów do zdalnego Cloud Storage z Introserv przy użyciu protokołu SSH. Ważne! Podobne polecenia, określające jedynie serwer docelowy, pozwalają kopiować katalogi i pliki na dowolny serwer zdalny za pośrednictwem SSH.
Przyjrzyjmy się niektórym z głównych opcji narzędzia, które będą najczęściej używane. Bardziej szczegółowa lista dostępnych opcji dostępna jest w dokumentacji man( polecenieman rsync ):
-v - wyświetlanie szczegółowych informacji o procesie
-c - sprawdzanie sum kontrolnych plików
-q - minimalne informacje
-a - tryb archiwizacji
-R - ścieżki względne
-y - nie nadpisuj nowszych plików
-b - tworzenie kopii zapasowej
-l - kopiowanie dowiązań symbolicznych
-L - kopiowanie zawartości linków
-H - kopiowanie twardych linków
-g - zachowaj grupę
-p - zachowanie uprawnień do plików
-t - zachowaj czas modyfikacji
-x - działa tylko w tym FS
-e - użyj innego protokołu transportowego (na przykład ssh)
-z - skompresuj pliki przed przesłaniem
--delete - usuwa pliki, których nie ma w źródle
--exclude - wyklucza pliki
--recursive - wylicza katalogi rekurencyjnie
--no-recursive - wyłącza rekurencję
--progress - wyświetla postęp transferu plików
--stat - wyświetla statystyki transferu
--max-size - maksymalny rozmiar przesyłanego pliku
--bwlimit - ograniczenie prędkości transferu plików
Krótkie wyjaśnienie składni
rsync -az -- progress /home/user/test.file boxxxx@boxxxxx.introserv.cloud:/remote_folder/
-az --progress opcje, które wskazują, że konieczne jest zarchiwizowanie przesyłanego pliku, skompresowanie go przed przesłaniem, a także wyświetlenie postępu kopiowania na ekranie;
/home/user/test.file jest to ścieżka do pliku i sam plik, który ma zostać przesłany;
boxxxx@boxxxxx.introserv.cloud: jest to zasób docelowy (w naszym przykładzie jest to pamięć masowa w chmurze, ale może to być również serwer zdalny) boxxxx to nazwa użytkownika, po znaku @ jest to nazwa zasobu lub adres IP serwera zdalnego;
/remote_folder/ to folder na zdalnym zasobie. W naszym przykładzie - w Introserv Cloud Storage.
Kopiowanie jednego pliku do folderu w zdalnej pamięci masowej
rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/
Zostaniesz poproszony o podanie hasła do połączenia z pamięcią masową:
Wprowadź hasło i kontynuuj, zobaczysz postęp i prędkość przesyłania plików:
Kopiowanie folderu do folderu w zdalnej pamięci masowej
Zwróć uwagę na ukośniki w wierszach folderu źródłowego i folderu docelowego. Brak ukośnika w folderze źródłowym wskazuje, że chcemy rekurencyjnie przenieść lokalny folder Desktop z całą jego zawartością do folderu remote_folder
rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/
Zobaczysz katalog i wszystkie znajdujące się w nim pliki, które zostaną przeniesione:
Kopiowanie zawartości folderu lokalnego do folderu w zdalnej pamięci masowej
Zwróć uwagę na ukośnik na końcu folderu źródłowego. Jego obecność wskazuje, że narzędzie powinno skopiować zawartość folderu lokalnego do folderu w pamięci zdalnej
rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Zobaczysz postęp i szybkość kopiowania:
Kopiowanie folderu ze zdalnej pamięci masowej do folderu na serwerze lokalnym
Za pomocą Rsync można zainicjować kopiowanie folderu ze zdalnej pamięci masowej. Polecenie wygląda następująco:
rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/
Zobaczysz postęp i szybkość kopiowania zdalnego folderu do folderu na serwerze lokalnym:
Kopiowanie zawartości folderu ze zdalnej pamięci masowej do folderu na serwerze lokalnym
W tym miejscu warto również zwrócić uwagę na ukośnik na końcu ścieżki folderu źródłowego. Jego obecność wskazuje, że tylko zawartość folderu musi zostać skopiowana
rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/user/Desktop/
Kopiowanie zawartości folderu z wyłączeniem i/lub uwzględnieniem plików
Narzędzie pozwala wyraźnie określić, które pliki mają zostać przesłane, a które powinny zostać wykluczone. W tym celu należy użyć opcji --include i --exclude.
rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Można zauważyć, że przesyłany jest tylko jeden plik, określony opcją --include. Należy pamiętać, że opcje include i exclude mogą być używane niezależnie od siebie
Kopiowanie tylko plików, które różnią się od plików w folderze docelowym
Aby anulować kopiowanie identycznych plików, należy użyć opcji -c w celu sprawdzenia sum kontrolnych plików. Pozwoli to wykluczyć z procesu kopiowania te pliki, które już znajdują się w folderze docelowym
rsync -azrс --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Widać, że tylko 3 pliki zostały skopiowane do zdalnego folderu, z wyjątkiem pliku test.odt, który znajduje się już w zdalnej pamięci masowej:
Używanie Rsync przez SSH z niestandardowym portem SSH
Aby przesłać pliki z/do serwera ze zmienionym portem SSH, należy użyć opcji -e 'ssh -p port_numer'
Polecenie kopiowania pliku na serwer, na którym port SSH został zmieniony na 44, będzie wyglądać następująco:
rsync -azrс --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/