Skocz do zawartości

.


Chairman510

Rekomendowane odpowiedzi

21 minut temu, Chairman510 napisał:

i postanowiłem zrobić kopie zapsową systemu ( w razie utracenia danych ).

Jak najbardziej prawidłowa postawa.

22 minuty temu, Chairman510 napisał:

Chcę, abym w kopii zapasowej miał zapisane zainstalowanie programy, ale nie wiem jakie katalogi do tego zbackupować.

Myślałem nad lib64, ale mam 2 takie katalogi (/lib64, /usr/lib64)

Nie ma to sensu, oprócz wymienionych katalogów, dane są również w innych katalogach np. /usr/bin i innych.

Jak chcesz zrobić kopie, to tylko ewentualnie konfiguracje programów z /etc, ale tylko pliki które sam zmieniałeś. Jeżeli używasz jakiś programów, które trzymają dane w /var np. bazy danych, serwery www, i Ci na nich zależy, to również, ale to już musisz sam ustalić gdzie który program trzyma dane. Jeżeli używasz Fedory jako desktop, to po prostu zrób kopię zapasową katalogu domowego.

Jak chcesz zrobić "kopię zainstalowanych programów", to możesz zapisać listę zainstalowanych programów do pliku poleceniem

dnf list installed |cut -f1 -d" " >zainstalowane.txt

A zainstalujesz je ponownie poleceniem

< zainstalowane.txt xargs dnf install -y

Z pliku zainstalowane.txt możesz usunąć pierwszą linię zatytułowaną Zainstalowane, ale nie musisz dnf zwróci co najwyżej błąd, że (_niema_ &#8594; nie ma) ORT pakietu Zainstalowane.

Oczywiście w ten sposób zainstalujesz programy które są dostępne w repozytorium, więc przed jego wykonaniem dobrze byłoby zainstalować dodatkowe repozytoria o ile ich używasz (np. rpmfusion)

Jeżeli instalowałeś pakiety rpm ręcznie i pobrałeś je z jakiś stron, no to tu już musisz zrobić ich kopię,

Odnośnik do komentarza
Udostępnij na innych stronach

Zwykle katalogi do archiwizacji to:

  • /var/www
  • /home
  • /var/spool/cron
  • /etc
  • trzeba zrobić zrzuty baz danych
  • oraz wszystkie pozostałe, gdzoe trzymasz jakieś dane.

Mój sposób jest taki (na przykładzie katalogu etc):

#!/usr/bin/bash

sudo tar -cvjSf /home/lukasz/magazyn/backup/etc/etc-$(date +%F).tar.bz2 /etc
sudo chown lukasz:lukasz /home/lukasz/magazyn/backup/etc/etc-$(date +%F).tar.bz2
chmod 600 /home/lukasz/magazyn/backup/etc/etc-$(date +%F).tar.bz2

find /home/lukasz/magazyn/backup/etc -mtime +15 -exec rm -f {} \;

oraz dodaję to do crona:

40 1 * * * /usr/bin/bash /home/lukasz/.local/bin/kopia_etc.sh >/dev/null 2>&1

I to musi działać automatycznie. Ręczne robienie kopii zapasowych szybko się nudzi :) , a co za tym idzie: nie jest wykonywane.

Teraz trzeba to jakoś przenieść na inną maszynę, albo zagospodarować zewnętrzny dysk, podłączany co tydzień i kopiować tam nowe pliki. Można do tego wykorzystać rsync. Na owej innej maszynie wystarczy więc:

rsync -vaxAXHSz --delete moj.domowy.komputer.pl:/home/lukasz/magazyn/backup/ /home/lukasz/backup/moj_momowy_komputer/

Rsync korzysta z protokołu ssh. Nie trzeba otwierać żadnych dziwnych portów na firewallu.

Teraz przykład wysyłania katalogu /home na zewnętrzny dysk:

rsync -vaxAXHSz --delete /home/lukasz/Dokumenty /run/media/lukasz/PAM/backup
rsync -vaxAXHSz --delete /home/lukasz/Obrazy /run/media/lukasz/PAM/backup
rsync -vaxAXHSz --delete /home/lukasz/Muzyka /run/media/lukasz/PAM/backup
rsync -vaxAXHSz --delete /home/lukasz/Pobrane /run/media/lukasz/PAM/backup
rsync -vaxAXHSz --delete /home/lukasz/Wideo /run/media/lukasz/PAM/backup
rsync -vaxAXHSz --delete /home/lukasz/.audacity-data /run/media/lukasz/PAM/backup/programy
rsync -vaxAXHSz --delete /home/lukasz/.config /run/media/lukasz/PAM/backup/programy
rsync -vaxAXHSz --delete "/home/lukasz/.local" /run/media/lukasz/PAM/backup/programy --exclude=Steam --exclude=Trash --exclude=evolution
rsync -vaxAXHSz --delete /home/lukasz/.mozilla /run/media/lukasz/PAM/backup/programy
rsync -vaxAXHSz --delete /home/lukasz/.ts3client /run/media/lukasz/PAM/backup/programy

Zdaję sobie sprawę, że kompresja przesyłanych z dysku na dysk danych jest nieco nadmiarowa, ale nie chce mi się kombinować z parametrami, których się raz nauczyłem:

rsync -vaxAXHSz --delete --dry-run /źródło [user]@[host]:/cel
       ||||||||   |        |
       ||||||||   |        ↳ tylko udaje kopiowanie
       ||||||||   ↳ usuwa pliki w katalogu docelowym, jeżeli źródło ich nie ma
       |||||||↳ kompresuje pliki przed kopiowaniem
       ||||||↳ skupia rozproszone po partycji pliki
       |||||↳ kopiuje twarde linki
       ||||↳ kopiuje artybuty
       |||↳ kopiuje ACL
       ||↳ pomija punkty montowania
       |↳ rlptgoD *
       ↳ dużo napisów

   * rekursywnie, kopiuje symlinki, zachowuje uprawnienia,
     zachowuje czasy modyfikacji, zachowuje właściciela,
     kopiuje specjalne pliki

Przed pierwszym (a nawet drugim i trzecim) stosowaniem rsync, warto użyć --dry-run. Zaskakująco łatwo zaorać sobie cały dysk przy stosowaniu --delete. :) Trzeba bardzo uważać na domykanie ścieżek za katalogami, na przykład jeżeli źródło ma /katalog/źródłowy/ , to cel również musi mieć /katalog/docelowy/ . Ukośnik końcowy jest albo po obu stronach, albo go nie ma po obu stronach. Szybko załąpiesz, kiedy pomylisz się przy tym pierwszy raz.

Jak już będziesz miał wypasiony, przetestowany, zautomatyzowany backup z powiedzmy dwutygodniową rotacją, możesz zainteresować się taśmami. Tu już nie będę się powtarzał: https://wiki.baszarek.pl/doku.php?id=wiki:tape_storage

Daj znać, na czym się zatrzymasz i co sprawi trudność.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...