Co to jest Unisono?
Technologia Unison opracowana przez Benjamina C Pierce'a na licencji GPL pozwala użytkownikom synchronizować dwa pojedyncze wystąpienia plików w tym samym systemie, ale na różnych dyskach lub w dwóch innych systemach.
Unison pozwala zachować zaktualizowaną i identyczną wersję tego samego pliku lub katalogu. Można go wykorzystać w wielu różnych kontekstach, takich jak SSH, umożliwiając bezpieczne przesyłanie danych między urządzeniami lub katalogami.
Narzędzie Unison jest wieloplatformowe, umożliwiając użytkownikom synchronizację plików i katalogów między systemami z tym samym lub różnymi systemami operacyjnymi. Na przykład możesz synchronizować pliki z systemu Linux do systemu BSD. Ze względu na swoje funkcje bezpieczeństwa Unison synchronizuje pliki i katalogi oraz stosuje prawa własności i uprawnienia w obu systemach.
Narzędzie Unison zostało opracowane z myślą o bezpieczeństwie i może przetrwać awarie, w których występują przerwy między punktami synchronizacji. Jeśli Unison wykryje konflikty plików i katalogów, zgłasza istniejące konflikty i umożliwia użytkownikom wybór wersji plików, które mają zostać zastosowane.
Unison może współpracować z wolnymi sieciami lub je obsługiwać, co czyni go bardzo wydajnym narzędziem do wykorzystania przepustowości. Synchronizuje tylko te części i katalogi, które uległy zmianie, zapobiegając w ten sposób dużemu obciążeniu i bardzo łatwo i szybko aktualizując proces synchronizacji.
Pomimo podstawowego kontekstu użycia, Unison jest potężnym narzędziem, które można modyfikować w celu stworzenia szerokiej gamy przypadków użycia.
Ten samouczek omówi, jak zainstalować i skonfigurować system synchronizacji plików Unison na Debianie 10.
Jak zainstalować Unison na Debianie 10
Unison to popularne narzędzie; dzięki temu jest dostępny w oficjalnych repozytoriach głównych dystrybucji Linuksa.
Aby zainstalować wersję Unison z wiersza poleceń na Debianie, rozpocznij aktualizację systemu:
aktualizacja sudo apt-get && aktualizacja sudo apt-getNastępnie użyj prostego polecenia apt to, aby zainstalować narzędzie.
sudo apt-get install unison -yJeśli masz zainstalowane środowisko graficzne w swoim systemie i wolisz wersję GUI narzędzia, zainstaluj unison-gtk za pomocą polecenia:
sudo apt-get install unison-gtkUWAGA: Upewnij się, że zainstalowałeś Unison w obu wersjach systemów, które chcesz synchronizować między nimi. Aby zapewnić kompatybilność i zminimalizować ryzyko wystąpienia błędów, lepiej mieć tę samą wersję Unison w obu systemach.
Jak zsynchronizować pliki z Unison
Unison zapewnia nam sposoby synchronizowania plików i katalogów między komputerami lokalnymi i zdalnymi przy użyciu bezpośrednich połączeń gniazdowych i SSH. Ponieważ synchronizujemy między dwoma serwerami Debiana, pominiemy synchronizację lokalnej maszyny.
Unison Remote i Remote Sync przez SSH
Aby synchronizować pliki i katalogi między zdalnymi maszynami, musisz mieć zainstalowany Unison w obu systemach, mieć dostęp SSH do obu systemów i ich adresów IP.
Możesz także użyć swojej lokalnej maszyny jako jednego serwera, a urządzenia zdalnego jako drugiego serwera.
- 192.168.0.200 - serwer1
- 192.168.0.201 - serwer2
Pierwszym krokiem jest utworzenie klucza prywatnego i publicznego na zdalnym serwerze1.
ssh-keygen -t rsaGenerowanie pary kluczy publiczny/prywatny rsa.
Wpisz plik, w którym chcesz zapisać klucz (/home/csalem/.ssh/id_rsa):
Utworzony katalog '/home/csalem/.ciii.
Wpisz hasło (puste, jeśli nie ma hasła):
Wprowadź ponownie to samo hasło:
Twoja identyfikacja została zapisana w /home/csalem/.ssh/id_rsa.
Twój klucz publiczny został zapisany w /home/csalem/.ssh/id_rsa.pub.
Kluczowy odcisk palca to:
SHA256:4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem@Debian-PC
Losowy obraz graficzny klucza to:
+---[RPA 2048]----+
|+/@=… |
|=*O== |
|++OE . |
|++o… |
|o+= . S |
|++. o . |
|oo… o |
|.o . = . |
|…oo |
+----[SHA256]-----+
Szybko pomiń proces generowania klucza i zapisz plik. Nie dodawaj hasła, ponieważ może to utrudnić niemonitorowaną synchronizację między serwerami.
Następnie skopiuj klucz z serwera 1 na serwer 2 za pomocą polecenia:
ssh-copy-id 192.168.0.201Teraz, gdy masz skonfigurowaną konfigurację SSH na obu systemach, możesz uruchomić Unison, aby zsynchronizować pliki i katalogi.
Przetestujmy użycie Unison na obu serwerach, tworząc katalog, który zsynchronizujemy na server1:
mkdir -p /dir1Na serwerze2 utwórz katalog jak powyżej
mkdir -p /dir2Jak wspomniano, Unison szanuje uprawnienia użytkowników. Dlatego najlepiej jest zmienić uprawnienia i właściciela w obu katalogach, aby upewnić się, że oba katalogi mają uprawnienia do odczytu i zapisu.
Następnie dodaj wszystkie dane, które chcesz zsynchronizować między serwerami w katalogu dir1. Na przykład dodaj kilka plików zip.
sudo mv ~/Dokumenty.zip /katalog1Mając pliki, które chcemy zsynchronizować w odpowiednim katalogu, uruchom polecenie unison, aby zsynchronizować z serwera jeden jako:
unisono /dir1 ssh://192.168.0.201//dir2Przy pierwszym uruchomieniu Unison otrzymasz ostrzeżenie, że proces synchronizacji może chwilę potrwać. Jeśli masz duże pliki w katalogach, może to chwilę potrwać, ale ponieważ używamy go tylko do celów testowych, powinno to być stosunkowo szybkie.
Naciśnij Enter, aby rozpocząć proces synchronizacji. Po zakończeniu procesu synchronizacji przejdź do server2, przejdź do dir2 i wymień zawartość katalogu jako:
cd /dir2 && ls -la-rw-r--r-- 1 root root 436 Jan 5 12:57 Dokumenty.zamek błyskawiczny
Modyfikowanie konfiguracji Unison
W większości przypadków nie chcemy interaktywnie synchronizować plików między tymi serwerami, ponieważ proces ten jest powtarzalny i nieefektywny. Możemy edytować plik konfiguracyjny Unison, aby umożliwić automatyczną synchronizację plików.
Użyj poniższego polecenia, aby edytować domyślny plik konfiguracyjny:
sudo vi ~/.unisono/domyślnie.prfW pliku dodaj następujące wiersze:
auto=prawdawsad=prawda
Powyższe wiersze wyłączają monity podczas synchronizacji plików, automatyzując proces.
Konfigurowanie Unison Cronjob
Pewną rzeczą jest to, że programiści bardzo niechętnie robią rzeczy ręcznie, zwłaszcza gdy można zautomatyzować, co ma miejsce w tym przypadku. Możemy skonfigurować cronjob, aby Unison wykonywał synchronizację automatycznie.
Na serwerze server1 utwórz prosty skrypt bash, aby uruchomić polecenie unisono jako:
sudo touch /usr/bin/unisoncron && sudo vi /usr/bin/unisoncronW pliku zacznij od shebang i dodaj polecenie synchronizacji unisono:
#!/kosz/bash/unisono /dir1 ssh://192.168.0.201//dir2
Jak zwykle, nadaj skryptowi uprawnienia do wykonywania:
sudo chmod 755 /usr/bin/unisoncronTeraz edytuj swój plik cronjob za pomocą crontab:
sudo crontab -eJeśli po raz pierwszy edytujesz crontab — mam nadzieję, że to nie — wybierz swój edytor i wprowadź następującą linijkę, aby co godzinę synchronizować się z Unisonem:
*/60 * * * * /usr/bin/unisoncron &> /dev/nullMożesz także skonfigurować crontab, aby działał o określonych porach dnia. Nie musisz również używać skryptu i możesz użyć surowego polecenia w crontab.
Wniosek
Ten samouczek pokazał, jak zainstalować i skonfigurować Unison w systemie Debian w celu synchronizacji plików i katalogów.
Chociaż ten krótki przewodnik może pomóc w rozpoczęciu pracy, możesz dowiedzieć się więcej, korzystając ze stron podręcznika Unison (stron podręcznika) lub oficjalnej dokumentacji, korzystając z zasobów podanych poniżej:
- https://www.cis.upen.edu/~bcpierce/unisono/
- https://www.cis.upen.edu/~bcpierce/unison/download/wydania/stabilne/unison-podręcznik.html