Martwisz się kiedyś o utratę danych lub masz dość ręcznego tworzenia kopii zapasowych codziennie lub co tydzień? Użyj rsync polecenia i automatycznie synchronizuj pliki lokalne ze zdalnym serwerem tak często, jak to konieczne, bez ręcznej interwencji. Pamiętaj, że ten przewodnik wymaga dostępu do zdalnego serwera Linux (np. AWS) i jest napisany pod Ubuntu 20.04, chociaż każda dystrybucja Linuksa powinna działać poprawnie.

Zainstaluj rsync

Przede wszystkim sprawdź, czy rsync jest zainstalowane. Na lokalnym komputerze i serwerze WWW uruchom to polecenie:

rsync --wersja

Jeśli otrzymasz w zamian aktualną wersję rsync, wszystko jest gotowe do następnej sekcji. W przeciwnym razie, jeśli otrzymasz nie znaleziono polecenia błąd, możesz zainstalować rsync za pomocą tego polecenia:

sudo apt-get -y zainstaluj rsync

Wygeneruj klucz SSH

Użyjemy a Klawisz SSH do uwierzytelnienia połączenia między naszym lokalnym komputerem a zdalnym serwerem. Aby wygenerować nowy klucz SSH na lokalnym komputerze w terminalu, uruchom polecenie:

instagram viewer
Jak skonfigurować SSH w systemie Linux i przetestować konfigurację: przewodnik dla początkujących

Chcesz uzyskać zdalny dostęp do komputera lub serwera z systemem Linux? Oto jak skonfigurować i skonfigurować SSH w systemie Linux, Windows i na urządzeniach mobilnych.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key

Po wyświetleniu monitu o hasło pozostaw je puste i dwukrotnie naciśnij klawisz Enter. Spowoduje to wygenerowanie dwóch nowych plików w twoim ~/.ssh/ katalog o nazwie rsync.key który jest kluczem prywatnym, i rsync.key.pub, klucz publiczny.

Skonfiguruj zdalny serwer

Chociaż nie jest to wymagane, w tym przewodniku stworzymy nowy użytkownik na zdalnym serwerze dla połączeń rsync i do przechowywania wszystkich plików kopii zapasowych. Zaloguj się do zdalnego serwera przez SSH i uruchom to polecenie:

sudo useradd -m rsync

Powyższy przykład używa nazwy użytkownika rsync, ale możesz to zmienić na cokolwiek chcesz. ten -m opcja po prostu mówi Linuksowi, aby utworzył katalog domowy dla naszego nowego użytkownika.

Aby umożliwić uwierzytelnianie komputera lokalnego, publiczny klucz SSH, który został wygenerowany w poprzedniej sekcji, należy skopiować na serwer zdalny. Otworzyć /~.ssh/rsync.key.pub plik w a Edytor tekstu i zobaczysz jedną dużą linię, która wygląda jak.

sz-rsa użytkownik@host

Ta długa linia to publiczny klucz SSH. Skopiuj go do schowka i na swoim zdalnym serwerze uruchom te polecenia:

sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... użytkownik@host" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys

W przedostatnim poleceniu zastąp tekst między cudzysłowami tym długim publicznym wierszem klucza SSH. To wszystko, twój lokalny komputer będzie teraz mógł uwierzytelnić się na twoim zdalnym serwerze.

Skonfiguruj plik konfiguracyjny ssh

Dla uproszczenia dodaj wpis do ~/.ssh/config plik na lokalnym komputerze, aby łatwo połączyć się ze zdalnym serwerem. Otwórz plik na lokalnym komputerze za pomocą polecenia.

nano $HOME/.ssh/config

W pliku dodaj wpis dotyczący zdalnego serwera, taki jak:

host_serwer_zapasowy
 nazwa hosta 192.168.0.24
 rsync użytkownika
 Plik tożsamości ~/.ssh/rsync

Zmień nazwę hosta na adres IP zdalnego serwera, a jeśli użyłeś nazwy użytkownika innej niż „rsync”, zmień ją również. Możesz użyć wszystkiego, co chcesz dla hosta, ale w tym przykładzie użyto "serwer_zapasowy". Zapisz i zamknij plik, naciskając Ctrl + X, a następnie klawisze „Y” i Enter.

Przetestuj połączenie SSH ze zdalnym serwerem za pomocą polecenia.

ssh serwer_kopii_zapasowej

Zakładając, że wszystko jest poprawnie skonfigurowane, powinieneś być teraz zalogowany do zdalnego serwera przez SSH. Zamknij połączenie za pomocą polecenia.

Wyjście

Synchronizuj swoje pliki

Teraz przetestuj rsync funkcjonalność i na przykład, aby zsynchronizować katalog dokumentów na lokalnym komputerze, uruchom polecenie:

rsync -avz --progress ~/Dokumenty/serwer_kopii_zapasowej:~/Dokumenty

Pierwsze wystąpienie ~/Dokumenty/ określa lokalny plik lub katalog do synchronizacji, serwer_zapasowy odpowiada wpisowi dodanemu do ~/.ssh/config plik i zakończenie :~/Dokumenty po prostu określa, aby przesłać wszystko do katalogu /Documents na serwerze zdalnym względem katalogu domowego.

Zaloguj się do zdalnego serwera i powinieneś zobaczyć nowy katalog Dokumenty, który jest zsynchronizowany z katalogiem lokalnego komputera. Za każdym razem, gdy uruchomisz powyższe polecenie, przesłane zostaną tylko pliki, które zostały zmodyfikowane od ostatniego razu, więc nie przesyłasz stale całej zawartości katalogu.

Automatyzacja przez Crontab

Teraz, gdy wszystko jest przetestowane i działa poprawnie, możemy łatwo zautomatyzować cały proces, dodając zadanie crontab do naszego lokalnego komputera. Aby automatycznie synchronizować folder lokalny ze zdalnym serwerem co 15 minut, w terminalu uruchom polecenie.

(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Dokumenty/ backup_server:~/Dokumenty > /dev/null 2>&1";) | crontab

Możesz otrzymać komunikat „brak crontab dla użytkownika” i możesz go po prostu zignorować. Zmienić Dokumenty do dowolnego katalogu, który chcesz wykonać, ale upewnij się, że pozostawiłeś ukośnik dla katalogów, w przeciwnym razie nie będą one poprawnie tworzyć kopii zapasowej.

Sprawdź, czy zadanie crontab zostało pomyślnie dodane za pomocą polecenia.

crontab -l

Jeśli widzisz właśnie dodane zadanie crontab, wszystko jest na swoim miejscu. Poczekaj 15 minut, sprawdź serwer zdalny, a wszystkie niezbędne pliki powinny tam być. Od teraz wszystkie zmiany dokonywane w Twoich plikach będą automatycznie przesyłane na zdalny serwer co 15 minut.

Pobierz ze zdalnego serwera

Możesz również użyć rsync aby pobrać pliki ze zdalnego serwera i zsynchronizować je z lokalnym komputerem. Korzystając z powyższego przykładu katalogu /Documents, w terminalu uruchom polecenie:

rsync -chavzP serwer_kopii_zapasowej:~/Dokumenty/ ~/Dokumenty

ten ~./Dokumenty katalog na lokalnym komputerze powinien być teraz lustrzanym odbiciem zdalnego serwera.

Uwzględnij i wyklucz wzorce

Jeśli kiedykolwiek będziesz potrzebować synchronizować tylko pliki, które pasują do określonego wzorca, na przykład zakończ na .html możesz użyć --włączać wzór. W terminalu uruchom polecenie.

rsync -avz --include "*.html" --progress ~/mojastrona/serwer_kopii_zapasowej:~/public_html

Sprawdź serwer zdalny, a zobaczysz, że tylko pliki z rozszerzeniem .html z lokalnego katalogu /mysite/ zostały przesłane do katalogu zdalnego /public_html/. Podobnie możesz również zsynchronizować wszystko z wyjątkiem niektórych plików za pomocą --wykluczać opcja. Na przykład następujące polecenie zsynchronizuje wszystkie pliki z wyjątkiem tych z .tekst rozbudowa.

rsync -avz --exclude "*.txt" --progress ~/mojastrona/serwer_kopii_zapasowej:~/public_html

Synchronizuj dwa katalogi lokalne

W razie potrzeby możesz również zsynchronizować dwa katalogi lokalne za pomocą polecenia.

rsync -zvr ~/źródło/katalog ~/docelowy/katalog

To polecenie działa dokładnie tak samo, jak podczas synchronizacji ze zdalnym serwerem, jedyną różnicą jest to, że są to dwa katalogi lokalne.

Odpocznij spokojnie

Możesz teraz odetchnąć z ulgą, wiedząc, że szanse na utratę danych są teraz znacznie mniejsze. W tym artykule dowiedziałeś się czego rsync jest, jak wygenerować i zainstalować klucz SSH, zdefiniować serwer w obrębie ~./.ssh/config pliku, zsynchronizuj katalog lokalny i zdalny oraz zautomatyzuj cały proces za pomocą crontab. W przyszłości wszystkie niezbędne pliki będą zawsze synchronizowane z serwerem zdalnym z zaledwie 15-minutowym opóźnieniem.

E-mail
Jak sklonować dysk twardy z systemem Linux: 4 metody

Chcesz sklonować dysk twardy lub partycję z systemem Linux? Użyj jednego z tych narzędzi do klonowania dysków, aby sklonować dysk z systemem Linux.

Powiązane tematy
  • Linux
  • Backup danych
  • Linux
  • Kopia zapasowa w chmurze
  • Sieć domowa
O autorze
Matt Dizak (13 opublikowanych artykułów)Więcej od Matta Dizaka

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Jeszcze jeden krok…!

Potwierdź swój adres e-mail w e-mailu, który właśnie do Ciebie wysłaliśmy.

.