Przyrostowa kopia danych RSYNC – linux

Odzyskanie hasła użytkownika Płatnika
7 stycznia 2023
Zmiana hasła do użytkownika WordPress
9 stycznia 2023

Bardzo często spotykam się z sytuacjami gdzie kopie należy wykonywać w sposób przyrostowy aby zaoszczędzić cenne miejsce na serwerze backupowym. Wspomniana metoda sprawdzi się w sytuacji gdy chcemy przenosić pliki, które w danej chwili są nieużywalne inaczej mówiąc obiekty statyczne. Przedstawione narzędzie sprawdza się idealnie podczas tworzenia kopii:

  • plików WWW
  • plików konfiguracyjnych
  • systemów LINUXowych
  • skrzynek mailowych

Narzędzia nie należy używać do kopii baz danych oraz obrazów VPS w formacie m.in RAW ponieważ są to usługi które cały czas pracują i dane są modyfikowane. Wykonanie kopii bazy danych na zasadzie skopiowania plików „live” spowoduje, że będą one najprawdopodobniej uszkodzone i przywrócenie danych będzie skomplikowane (choć realne z drobnymi błędami). Analogiczna sytuacja będzie również w serwerami VPS.

Co potrzebujemy aby wykorzystać ten skrypt?

  • serwer z dowolną dystrybucją systemu LINUX
  • serwer backupowy z dowolną dystrybucją systemu LINUX
  • zainstalowany pakiet RSYNC – dostępny w dowolnym repozytorium
  • dowolny edytor tekstu
  • 10 minut 🙂

Skrypt znajduje się tutaj, wystarczy go pobrać na serwerze backupowym. Następnie delikatnie go omówimy.

1.  Logujemy się na nasz serwer za pomocą programu np. Putty

2. Wchodzimy do katalogu np. home i pobieramy skrypt komendą

wget –no-check-certificate https://mikorol.pro/narzedzia/kopia-rsync.sh

3. Następnie instalujemy pakiet RSYNC w moim przypadku robimy to za pomocą poniższej komendy(dla systemów z rodziny Redhat):

yum update && yum install rsync -y

Jeżeli posiadamy serwer na systemie Debian lub Ubuntu to wykonujemy komendę:

apt-get update && apt-get install rsync -y

4. Pakiet mamy zainstalowany, skrypt pobrany. Więc edytujemy go za pomocą dowolnego edytora tekstu np. nano lub vi

nano kopia-rsync.sh

5. Skupiamy się głównie na pierwszych liniach pliku, a dokładniej:

BACKUP_DIR=/home/kopia-dysku

W tym miejscu ustawiamy katalog docelowy dla wykonywanej kopii.

SOURCE_DIR=root@192.168.0.200:/home

W tym miejscu ustawiamy login użytkownika oraz adres IP wraz ze ścieżka z jakiej mają być pobierane pliki. W naszym przypadku skrypt się łączy z serwerem o adresie IP 192.168.0.200 na użytkownika root, a pobierane pliki będą wszystkie z katalogu /home/.

NUM_BACKUP=7

W ostatnim miejscu ustawiamy z ilu dni ma być przechowywana kopia danych. Domyślnie jest na 5, dla przykładu zmieniłem na 7.

6. Po dokonanych zmianach można zapisać plik oraz nadać mu uprawienia do wykonania czyli:

chmod +x kopia-rsync.sh

7. Wykonanie skryptu za pomocą poniższej komendy spowoduje wykonanie się kopii.

bash kopia-rsync.sh

8. Mamy wszystko! Narzędzie pozwala na wiele modyfikacji według własnych preferencji.

przykładowa kopia z trzech ostatnich dni