Jak wykonać kopię zapasową systemu Linux

Nie ryzykuj utraty danych. Utwórz kopię zapasową cennych danych z wiersza poleceń systemu Linux. Będziemy używać do tego polecenia rsync, a nawet znaleźliśmy do tego kilka fajnych opcjonalnych interfejsów graficznych.

Istnieje wiele sposobów wykonania kopii zapasowej plików. Chcieliśmy pokazać solidny, elastyczny i niezawodny sposób ochrony danych. Wybraliśmy rsync ze względu na jego szanowane algorytmy które obliczają różnice między plikami w katalogu źródłowym i docelowym. Przesyłane są tylko różnice między dwiema wersjami pliku, a nie cały plik, jeśli można tego uniknąć.

Kiedy ta wydajność jest połączona z solidnymi osiągnięciami w wykonywaniu kopii plików i synchronizacji katalogów od połowy lat 90-tych, rsync jest idealnym kandydatem do tworzenia kopii zapasowych z wiersza poleceń Linuksa.

Ponadto istnieją niezależne programy, które działają jako front-end dla rsync. Zapewniają graficzne interfejsy użytkownika (GUI) do rsync, które niektórym osobom mogą wydawać się łatwiejsze w użyciu.

Im prostsze i szybsze jest wykonanie kopii zapasowej, tym większe jest prawdopodobieństwo, że to zrobisz.

Używanie rsync z zewnętrznym dyskiem twardym

Aby wykonać kopię zapasową danych na zewnętrznym dysku twardym, musi on być zamontowany i dostępny. Jeśli możesz do niego pisać, możesz też użyć rsync. W tym przykładzie zewnętrzny dysk twardy USB o nazwie SILVERXHD (od „Silver eXternal Hard Drive”) jest podłączony do komputera z systemem Linux. Został automatycznie zamontowany przez system operacyjny.

Musisz znać ścieżkę do dysku. W GNOME otwórz przeglądarkę plików Nautilus i znajdź nazwę napędu na pasku bocznym.

Umieść wskaźnik myszy nad nazwą dysku zewnętrznego, a etykieta narzędzi pokaże ścieżkę do dysku.

etykietka dla dysku zewnętrznego

W tym przykładzie podpowiedź informuje nas, że punkt montowania systemu plików na dysku zewnętrznym to „/ media / dave / SILVERXHD”.

Jeśli Twoja przeglądarka plików tego nie robi, przejdź do dysku zewnętrznego i otwórz okno terminala w tej lokalizacji. Użyj polecenia pwd, aby wydrukować ścieżkę do okna terminala.

Kopiowanie treści z katalogu źródłowego

Aby użyć rsync do skopiowania zawartości katalogu do miejsca docelowego kopii zapasowej, użyj następującego polecenia.

Opcja -r (rekurencyjna) powoduje, że rsync kopiuje wszystkie zagnieżdżone podkatalogi i ich zawartość. Zwróć uwagę, że na końcu słowa „SILVERXHD” znajduje się ukośnik „/”, ale został on zawinięty do następnej linii na zrzucie ekranu.

rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/

rsync -r / home / dave / Documents / / media / dave / SILVERXHD / w oknie terminala

Następuje kopiowanie pliku i następuje powrót do wiersza poleceń.

Jeśli spojrzymy na zewnętrzny dysk USB, zobaczymy, że katalogi znajdujące się w katalogu Dokumenty zostały skopiowane do katalogu głównego dysku zewnętrznego.

ls

Znajduje się w oknie terminala

Kopiowanie katalogu źródłowego i jego zawartości

Jeśli chcesz, aby katalog Dokumenty i jego zawartość zostały skopiowane na dysk zewnętrzny, usuń „/” z końca „/ home / dave / Documents” w wierszu poleceń, na przykład:

rsync -r /home/dave/Documents /media/dave/SILVERXHD/

rsync -r / home / dave / Documents / media / dave / SILVERXHD / w oknie terminala

Aby uniknąć nieporozumień, usunąłem dwa wcześniej skopiowane katalogi z dysku zewnętrznego przed wykonaniem tego drugiego polecenia.

Jeśli pozwolimy drugiej kopii zakończyć i ponownie spojrzeć na dysk zewnętrzny, zobaczymy, że katalog Dokumenty został skopiowany. Jego zawartość znajduje się w tym katalogu. Nie ma ich w katalogu głównym dysku zewnętrznego.

Znajduje się w oknie terminala

Kopiowanie do określonego katalogu docelowego

Aby skopiować do określonego katalogu na docelowym dysku twardym, dodaj nazwę katalogu do ścieżki docelowej. Załóżmy, że chcemy skopiować zawartość katalogu „/ home / dave / Documents” do katalogu o nazwie „backups” na dysku zewnętrznym.

Zrobilibyśmy to za pomocą następującego polecenia.

rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/backups/

rsync -r / home / dave / Documents / / media / dave / SILVERXHD / backups / na terminalu

Sprawdzając na dysku zewnętrznym, widzimy, że katalog kopii zapasowych został utworzony, a wewnątrz tego katalogu znajduje się zawartość katalogu „/ home / dave / Documents”.

ls
ls backups

Wyjście z ls w oknie terminala

Zachowywanie praw własności do plików i uprawnień

Użyj opcji -a (archiwum), aby zachować atrybuty plików, takie jak daty modyfikacji, prawa własności do plików, uprawnienia dostępu i inne, dla kopiowanych plików, dowiązań symbolicznych i specjalnych plików bloków.

rsync -ra /home/dave/Documents/ /media/dave/SILVERXHD/backups/

rsync -ra / home / dave / Documents / / media / dave / SILVERXHD / backups / w oknie terminala

Korzystanie z trybu pełnego

Opcja -v (verbose) wymusza na rsync wyświetlenie plików podczas ich kopiowania.

rsync -rav /home/dave/Documents/ /media/dave/SILVERXHD/backups/

rsync -rav / home / dave / Documents / / media / dave / SILVERXHD / backups / w oknie terminala

Po zakończeniu kopiowania zostanie wyświetlone podsumowanie kopii zapasowej.

szczegółowe dane wyjściowe z rsync w oknie terminala

Wysłane: bajty przesłane do celu.
Odebrane: bajty odebrane przez hosta.
Bajty / s: to efektywna szybkość transferu.
Całkowity rozmiar: reprezentuje rozmiar danych, które zostałyby wysłane, gdybyś nie używał rsync. Przy kolejnych uruchomieniach rsync prześle tylko różnice między plikami. Ta liczba będzie reprezentować dane, które nie musiały być przesyłane.
Przyspieszenie: jest to stosunek między ilością danych, które musiały zostać wysłane, a całkowitą ilością danych, które są. Jeśli rsync musi skopiować wszystkie pliki w całości (na przykład przy pierwszym uruchomieniu), przyspieszenie wyniesie 1.0. Przy następnym użyciu rsync zoptymalizuje transfery. Wyśle tylko różnice między plikami, a nie całe pliki. Pliki bez zmian zostaną zignorowane. Wartość przyspieszenia będzie odzwierciedlać stosunek małej ilości danych, które należało przesłać, do całkowitego rozmiaru plików.

Korzystanie z opcji postępu

Opcja -P (postęp) powoduje, że rsync generuje mały raport o postępie po skopiowaniu każdego pliku.

rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/

rsync -raP / home / dave / Documents / / media / dave / SILVERXHD / backups / w oknie terminala

Podane informacje można zobaczyć między każdym skopiowanym plikiem.

Wyjście rsync z postępem w oknie terminala

Podane informacje to:

Rozmiar bajtu: dane przesłane dla tego pliku.
Procent: procent przesłanego pliku.
B / s: szybkość przesyłania danych.
Pozostały czas: szacowany czas pozostały do ​​przesłania tego pliku.
xfr #: liczba przesłanych plików.
to-chk: liczba plików pozostałych do sprawdzenia i zweryfikowania przez algorytmy optymalizacji.

Dodanie większej prędkości

Aby przyspieszyć transfery, użyj opcji -z (kompresja). Powoduje to kompresję przesyłanego pliku, ale plik jest przechowywany w stanie nieskompresowanym w katalogu docelowym.

Opcja kompresji nie przyniesie znaczących korzyści w przypadku transferów obejmujących wiele małych plików. W przypadku kolekcji większych plików może to znacząco skrócić czas przesyłania.

Używamy tutaj również opcji –partial. rsync usunie częściowo przesłane pliki spowodowane usterkami sieci lub innymi przerwami. Opcja –partial zmusza rsync do pozostawienia częściowo przesłanych plików w miejscu docelowym. Po uruchomieniu rsync netto nie będzie musiał ponownie przesyłać części częściowo przesłanych plików.

Pamiętaj, że możesz nie chcieć korzystać z tej opcji, jeśli istnieje ryzyko, że ktoś pomyli częściowo przesłane pliki z całkowicie przesłanymi plikami.

rsync -ravz  --partial /home/dave/Documents/ /media/dave/SILVERXHD/backups/

rsync -ravz --partial / home / dave / Documents / / media / dave / SILVERXHD / backups / w oknie terminala

W naszym przykładzie korzyści są marginalne.

wyjście rsync w oknie terminala

Współczynnik przyspieszenia poprawił się, ale o dwie setne procenta! W prawdziwym scenariuszu twoja poprawa prędkości będzie bardziej imponująca.

Korzystanie z rsync w sieci

Do tej pory celowaliśmy w zewnętrzny dysk USB. Aby użyć lokalizacji sieciowej jako miejsca docelowego kopii zapasowej, użyj ścieżki do tej lokalizacji w wierszu poleceń. Tam jest sieciowe urządzenie magazynujące (NAS) w sieci, w której badano ten artykuł.

Możemy użyć tej samej sztuczki, której użyliśmy wcześniej, aby zidentyfikować ścieżkę do NAS, najeżdżając myszą na połączenie z tym urządzeniem w Nautilusie.

Nie ma specjalnych opcji tworzenia kopii zapasowych w sieci; to są wszystkie opcje, z których już korzystaliśmy.

rsync -ravz  --partial /home/dave/Documents/ /media/dave/NAS/dave/backups/

rsync -ravz --partial / home / dave / Documents / / media / dave / NAS / dave / Backups / w oknie terminala

Nie ma różnicy w formacie danych wyjściowych.

wyjście rsync w oknie terminala

Nic dziwnego, że liczba bajtów / s znacznie się poprawiła.

Jeśli ponownie uruchomimy rsync, zobaczymy, że nie ma plików do przesłania, ponieważ nie wprowadzono żadnych zmian, ale nadal jest kilka bajtów przesyłanych w tę iz powrotem. Jest to ilość danych, które należy przesłać, aby porównać listę plików w miejscu docelowym z listą plików w źródle.

wyjście fromrsync bez plików do przesłania w oknie terminala

W tym przypadku współczynnik przyspieszenia jest o rząd wielkości lepszy. W praktyce twoje wskaźniki wydajności będą gdzieś pomiędzy naszymi dwoma pseudo-sztucznymi odczytami.

Używanie rsync przez SSH

rsync obsługuje tworzenie kopii zapasowych przez połączenie SSH. Musimy podać nazwę konta użytkownika i lokalizację SSH w wierszu poleceń. Używamy tutaj nazwy sieci, ale możesz również użyć adresu IP.

Zwróć uwagę na znak „:” między szczegółami połączenia SSH a początkiem ścieżki sieciowej w zdalnym miejscu docelowym.

rsync -ravz  --partial /home/dave/Documents/ [email protected]:/home/dave/Backups/

rsync -ravz --partial / home / dave / Documents / dave@sulaco.local: / home / dave / Backups / w oknie terminala

Zostaniesz poproszony o podanie hasła do konta użytkownika na zdalnym komputerze. To nie jest twoje hasło na komputerze źródłowym.

rsync przez połączenie ssh w oknie terminala

Kopia zapasowa zostanie wykonana jak zwykle. Przepustowość nie jest tak szybka jak zwykłe połączenie sieciowe ze względu na szyfrowanie i odszyfrowywanie, które mają miejsce w bezpiecznym połączeniu powłoki.

Automatyzacja kopii zapasowych

Możemy łatwo tworzyć automatyczne kopie zapasowe, dodając wpisy do pliku crontab.

crontab -e

crontab -e w oknie terminala

Skonfigurujemy automatyczną kopię zapasową, która będzie uruchamiana każdego dnia o godzinie 04:30 (oczywiście jeśli komputer jest w tym czasie włączony). Składnia polecenia rsync w ogóle się nie zmienia.

crontab otwarty w nano w oknie terminala

Ctrl + O zapisze twoje zmiany w pliku, a Ctrl + X zamknie edytor nano.

Nadawanie przyjaznej twarzy na Rsync

Osoby, które nie czują się dobrze z wierszem poleceń, mogą użyć jednego z wielu programów, które umieszczają graficzny interfejs użytkownika (GUI) na rsync. Oto dwa dobre przykłady luckyBackup i Grsync. Oba te programy pozwalają na wybór wielu opcji rsync poprzez interfejs użytkownika.

Program Grsync koncentruje się na byciu wizualnym opakowaniem rync. Zapewnia łatwy dostęp do opcji rsync i dodaje tylko ograniczony zestaw nowych funkcji.

Jedno z okien dialogowych ustawień Grsync,Jedno z okien dialogowych ustawień Grsync,

Program luckyBackup to znacznie więcej niż zwykłe opakowanie rsync. Jest to program do tworzenia kopii zapasowych, który używa rsync w tle. Na przykład luckyBackup może wykonać wiele „migawek” kopii zapasowej. Następnie możesz „przywrócić” wersje plików w dowolnej migawce.

Jedno z okien dialogowych ustawień luckyBackupJedno z okien dialogowych ustawień luckyBackup.

Aby zainstalować Grsync

Aby zainstalować Grsync w Ubuntu, użyj tego polecenia:

sudo apt-get install grsync

sudo apt-get install grsync w oknie terminala

Aby zainstalować Grsync w Fedorze, użyj tego polecenia:

sudo dnf install grsync

sudo dnf zainstaluj grsync

Aby zainstalować Grsync w Manaro, użyj tego polecenia:

sudo pacman -Syu grsync

sudo pacman -Syu grsync w oknie terminala

Aby zainstalować luckyBackup

Aby zainstalować luckyBackup w Ubuntu, użyj następującego polecenia:

sudo apt-get install luckybackup

sudo apt-get install luckybackup w oknie terminala

Aby zainstalować luckyBackup w Fedorze, użyj następującego polecenia:

sudo dnf install luckybackup

sudo dnf zainstaluj luckyback w oknie terminala

W Manjaro musisz zainstalować luckyBackup z Arch. Repozytorium użytkowników (AUR). Możesz to zrobić za pomocą menedżera pakietów pamac.

menedżer pakietów pamac

Nie ryzykuj, często wykonuj kopie zapasowe danych

Kopie zapasowe są absolutnie niezbędne. Często twórz kopie zapasowe, twórz kopie zapasowe w wielu lokalizacjach i na różnych nośnikach. Po skonfigurowaniu rsync może zrobić to wszystko za Ciebie.