Praca z Rsync

Praca z Rsync

Jako administrator systemu lub po prostu dbający o kopie zapasowe użytkownika domowego, prędzej czy później (zwykle wcześniej) będziesz musiał poradzić sobie z tworzeniem kopii zapasowych. Odbywają się katastrofy, od burz elektrycznych po niepowodzenia i trzeba przygotować. Nie możemy wystarczająco podkreślić, jak ważne jest posiadanie kopii ważnych danych. Podczas gdy cała koncepcja kopii zapasowej jest zbyt długa dla tego artykułu, skupimy.

Przyrostowe kopie zapasowe opierają się na pomyśle, że po kopii danych musisz tworzyć kopię zapasową, wynikające z tego kopie zapasowe tych samych danych powinny być przyrostowe, co oznacza, że ​​aktualizujesz kopię kopii zapasowej o różnice od czasu, gdy pojawiła się ostatnia operacja, nie, nie Utwórz kolejną pełną kopię. Opracujemy tutaj konfigurację, którą mamy w domu w celu tworzenia kopii zapasowych ważnych danych, ale przykłady tutaj mogą być używane w większych obiektach. Kiedy zaczniesz, będziesz wiedział, gdzie, gdzie i kiedy potrzebujesz.

Jeśli masz serwer kopii zapasowej, który ma 24 godziny na dobę, 7 dni w tygodniu, możesz utworzyć cronjob do okresowego tworzenia kopii zapasowych danych. Ponieważ nasz przykład opiera się na domu, mamy serwer zapasowy, ale ponieważ nie jest to cały czas, pokażemy, jak to zrobić ręcznie. Rsync musi być zainstalowany w obu systemach i to wszystko, żadne inne prace konfiguracyjne nie muszą być wykonywane, przynajmniej w prostych przypadkach. Pamiętaj, że nie jesteś związany z Linux lub inną platformą Unix: RSYNC jest również dostępna dla systemu Windows. Jeśli martwisz się o bezpieczeństwo, RSYNC pracuje nad SSH i można go uznać za bezpieczny zamiennik RCP (zdalna kopia) polecenie, więc wszystko jest dobrze.

Praca z Rsync

W naszym scenariuszu maszyna zawierająca pliki do tworzenia kopii zapasowych jest maszyna do testowania Debiana; po prostu zrobiliśmy

 # Aptitude instaluj rsync 

Aby to zainstalować i to było wszystko, co musieliśmy zrobić na tym komputerze. Maszyna kopii zapasowej to FreeBSD 8.2-stabilne pudełko i tam zrobiliśmy

 # cd/usr/porty/net/rsync && uczyń instalację czysty 

Aby zainstalować rsync. Nie wykonaliśmy żadnej dodatkowej konfiguracji na żadnej z tych maszyn, ale znowu jest to prosty scenariusz. Przeczytaj podręcznik RSync dla opcji, których możesz potrzebować w konkretnej sprawie. Zanim przejdziemy do prawdziwej oferty, wyjaśnijmy trochę o zwykłych opcjach Rsync i opcjach wiersza poleceń (tak, wiemy, 90% nie czyta instrukcji). Za pomocą rsync możesz albo wyciągnąć lub popchnąć dane z/do jego miejsca docelowego, więc ogólnie składni będzie

[Pull] rsync [opcje] $ źródło $ docelowe [push] rsync [opcje] $ docelowe Źródło Źródło 

Ścieżka lokalna może być dowolną ścieżką względną lub bezwzględną. Zdalna ścieżka jest dokładnie taka jak ta, której używasz z SSH lub innymi programami, które działają nad SSH: $ user@$ hostName lub $ iPaddress: $ ścieżka . Tłumaczenie tego, co powiedzieliśmy powyżej i używając praktycznego przykładu (dysk do przechowywania kopii zapasowych jest zamontowany pod /data1 na komputerze BSD i chcemy utworzyć kopię zapasową wszystkich filmów użytkownika na 10.1.3.98), chcemy przesunąć pliki z pola debian do pudełka FreeBSD, więc tak robimy

 $ rsync [opcje] uż[email protected]:/home/użytkownik/filmy//data1/ 

Z terminalu FreeBSD. Oczywiście musisz zastąpić „użytkownik”, lokalizacje i adresy IP, co jest odpowiednie na Twojej witrynie. Jak powiedzieliśmy, możesz łatwo zastąpić adres IP nazwa hosta, czy to w sieci lokalnej (upewnij się, że edytujesz /itp.hosty) lub zdalna nazwa hosta znana przez Twój serwer DNS. Upewnij się również, że masz odpowiednie uprawnienia do folderu docelowego i że możesz odczytać również katalog danych źródłowych. Korzystanie z powyższego polecenia bez opcji nic nie zrobi, ponieważ źródłem jest katalog, a nie określony plik. Możesz użyć wielkich cardów z rsync, jak

 $ rsync [opcje] uż[email protected]:/home/użytkownik/filmy/*/data1/ 

Ponieważ rsync jest inteligentnym oprogramowaniem, jest lepiej, jeśli używasz

 $ rsync -Avr uż[email protected]:/home/użytkownik/filmy//data1/ 

które skopiują dane w katalogu filmowym w trybie archiwum (-a) Verbosely (-V) i rekurencyjnie (-R). Krótko mówiąc, jeśli chcesz skopiować cały katalog, nie zapomnij o -r, a jeśli chcesz dokładnie odwrotnie, użyj -d, który skopiuje tylko strukturę katalogu, bez plików. Jeśli przepustowość jest problemem, dodaj flagę -Z, ale pamiętaj, że zawsze istnieje kompromis między czasem oparcia a procesorem: Dane skompresowane podkreśla maszyny, oba, ponieważ jedna ściska i wysyła, drugi odbiera i dekompresuje. Krótko mówiąc, to wszystko, co naprawdę zrobiliśmy dla naszej sprawy tutaj. Użyjemy dokładnych poleceń plus flaga zwrotu później, gdy będziemy chcieli zsynchronizować dane z pola kopii zapasowej i, jak wspomniano wcześniej, tylko różnice zostaną zsynchronizowane. Niemniej jednak zaprezentujemy inne przydatne i powszechnie używane opcje do RSYNC, ponieważ jest to jeden z wielu scenariuszy, w których Rsync może ci służyć, zwłaszcza że jest mały i szybki.

Inne opcje rsync

Rsync ma wiele innych przydatnych opcji: to, co zrobiliśmy tylko po to, aby dać ci wspólny i prosty przykład. Flaga -e pozwala określić zdalną powłokę do użycia z rsync, jak

 $ rsync -e ssh [argumenty] 

Jeśli nie chcesz synchronizować plików, które są nowsze po stronie odbiorczej, używanie -u cię tam dostanie. -Postęp pokaże ci ładny szczegółowy raport na żywo na temat procesu zdalnego synchronizacji. -Usuń usunie plik na komputerze docelowym, jeśli już tam jest. Jeśli plik nie istnieje, a nie chcesz go tworzyć, więc potrzebujesz czystej aktualizacji już istniejących plików, użyj -energing. Chcę zobaczyć zmiany? Nie ma problemu, użyj -i.

Teraz są to tylko niewielka część mnóstwa opcji ofert rsync, pozwolimy ci odkryć resztę. Tak więc nasze początkowe polecenie, z wszystkimi nowymi opcjami, których się nauczyliśmy, wyglądałoby tak:

 $ rsync -e ssh -Avriz --progress - -delete uż[email protected]:/home/użytkownik/filmy//data1/ 

Mamy nadzieję, że znajdziesz to oprogramowanie tak samo nam się podoba, a jeśli masz jakieś pytania, tak, powtarzamy to raz po raz: użyj instrukcji, Luke. Pamiętaj jednak, aby z ostrożnością używać rsync. W końcu, aby pomóc w radzeniu sobie z codziennymi sytuacjami, przedstawimy Ci kilka przykładów:

Więcej przykładów rsync

1. Powiedzmy, że chcesz zsynchronizować tylko jeden plik. Oczywiście nie potrzebujesz -r, ponieważ jest to specyficzne dla katalogu, więc po prostu zrobisz

 $ rsync -v użytkownik@host:/etc/adduser.conf /root / 

2. Może chcesz grać z wzorami bardziej zaawansowanymi, niż może to zapewnić powłoka, lub po prostu chcesz po prostu wykluczyć/dołączyć niektóre pliki/katalogi. Po prostu użyjesz -include i -exclude, jak więc:

 $ rsync -avz -Include 'g*' --exclude '*' użytkownik@host:/etc//root/config/ 

To polecenie skopiuje tylko katalogi z / etc / które zaczynają się od „g” i wyklucza wszystko inne.

3. Być może chcesz ograniczyć maksymalny rozmiar pliku transfery rsync z miejsca docelowego. Można użyć -max -size = „rozmiar”, gdzie „rozmiar” może być przymocowany do K dla KB, M dla MB i G dla GB.

$ rsync -avz - -limit -size = '2G' /home /użytkownik /filmy /backumedia

4. Do tej pory rozmawialiśmy o tym, jak dobry jest rsync dla przyrostowych kopii zapasowych. Ale jeśli chcesz przenieść cały plik, od nowa, możesz to zrobić. Po prostu użyj -w:

 $ rsync -Avzw/Home/User/Movies/Hackers2.avi /backupmedia / 

5. Czy wiesz, że rsync może wykonywać polecenia na zdalnym komputerze, aby pomóc Ci mieć listę kopiowania/synchronizacji? Może i działa następująco:

 $ rsync -Avrz użytkownik@host: "Znajdź/home/user/development/-name *.c -print "\/Backup/Development/ 

6. Jeśli chcesz zmienić domyślną metodę szyfrowania, używając SSH, użyj -rsh:

 $ rsync -avz - -rsh = "ssh -c arcfour -l użytkownik" /źródło /miejsce docelowe 

Możesz tego użyć, zwłaszcza jeśli jesteś na bardzo wolnym maszynie.

7. Ten punkt dotyczy zachowania różnych atrybutów kopiowanych plików: -P zachowuje uprawnienia, -x zachowuje xattrs, -A zachowuje ACL (Twój system plików źródłowych musi oczywiście mieć koncepcję ACL), -o zachowuje właściciela (tylko superuser ), -H zachowuje twarde linki i -g zachowuje grupę. Wyszukaj po słowa „zachowaj” w instrukcji Rsync, jeśli to, co chcesz zachować. Pamiętaj, że -czy większość konserwującej części dla ciebie, ale jeśli chcesz drobnoziarnistej kontroli, możesz to zrobić.

 $ rsync -vzpxaohg /Źródło /miejsce docelowe 

8. Rsync jest używany przez właścicieli lustrzanych na całym świecie, aby pozostać na bieżąco z projektem ( -y), które odzwierciedlają. Oto kilka przykładów:

$ rsync -vaz - -delete ftp4.de.FreeBSD.org :: freebsd// pub/ freebsd/ $ rsync -avz - -delete - -safe -links rsync.Apache.org :: apache -dist/ścieżka/do/luster $ rsync -auh rsync: // rsync.Chiarka.Greenend.org.UK/FTP/Użytkownicy/Sgtatham/Putty-Wobsite-Mirror/ . 

9. Chcemy wydać ostateczne słowo ostrzeżenia: ostateczne „/” w adresie źródłowym jest ważne. Jeśli zrobisz

 $ rsync -Avz /Źródło /miejsce docelowe 

Otrzymasz inny wynik niż gdybyś zrobił

 $ rsync -Avz /Source / /Dstination 

Pozwolimy Ci odkryć, jaka jest różnica, jednak nie próbuj tego odkrycia na ważnych danych!

Powiązane samouczki Linux:

  • Jak przetestować procesor na Linux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Przykłady rsync w Linux
  • Jak podzielić napęd USB w Linux
  • Jak korzystać z Dysku Google w Linux
  • Jak porównywać wydajność dysku na Linux
  • Ubuntu 20.04 Przewodnik
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa