Jak wykorzystać RSYNC do automatycznego wykonywania kopii zapasowych na cyber_Storage?

Rsync (Remote Sync) to narzędzie służące do synchronizacji plików i katalogów między lokalnym systemem a zdalnym systemem lub między dwoma zdalnymi systemami. W poniższej instrukcji przedstawiony został sposób wykorzystania Rsync do tworzenia automatycznych kopii zapasowych poprzez utworzenie skryptu i cykliczne uruchomienie go w zadaniu CRON.

Aby skorzystać z RSYNC i cyber_Storage:

1. Upewnij się, że znasz hasło ustawione w opcji RSYNC Secret w danych technicznych Twojej usługi cyber_Storage: https://cyberfolks.pl/pomoc/zarzadzanie-usluga-cyber_storage-zmiana-hasla-konfiguracja/

2. Zaloguj się do SSH serwera, z którego chcesz zgrać dane – przykładowe polecenie:
ssh -p PORT USER@HOST
gdzie: PORT to port do połączenia SSH, USER to login użytkownika, a HOST to nazwa serwera lub jego adres IP
Przykłady nawiązania połączenia SSH dla usług z naszą administracją znajdziesz w instrukcji: https://cyberfolks.pl/pomoc/jak-zalogowac-sie-na-ssh/

3. Ustal, w jakiej lokalizacji znajdują się pliki, które chcesz przekopiować.

4. Utwórz na serwerze katalog, w którym umieścisz pliki potrzebne do uruchomienia skryptu, np poleceniem mkdir nazwa_katalogu i przejdź do tego katalogu cd nazwa_katalogu

5. Utwórz w tej lokalizacji plik o dowolnej nazwie np. poleceniem:
nano pass.txt
Umieść w nim hasło RSYNC Secret z pierwszego punktu instrukcji i zapisz plik („ctrl”+”o” i potwierdź Enter)
Nadaj uprawnienia 600 dla pliku z hasłem: chmod 600 pass.txt

6. Utwórz w tej samej lokalizacji plik skryptu .sh: nano skrypt.sh

7. Uzupełnij plik skrypt.sh skryptem z poleceniem rsync – przykładowy skrypt, który możesz wykorzystać:

#!/bin/bash

#####EDIT HERE#####
LOGIN=""
SERVER=""
SOURCE_DIR=""
PASS_SECRET=""
###################

# Pobranie bieżącej daty, do utworzenia katalogu, do którego zostaną wgrane dane
current_date=$(date +%Y-%m-%d)

# Ustalenie daty, po której dane mają być usunięte - tutaj 28 dni wstecz od bieżącego dnia - ILOŚĆ DNI MOŻNA EDYTOWAĆ
old_date=$(date -d "28 days ago" +%Y-%m-%d)

# Lokalizacja docelowa, do ktorej zostana wgrane dane - utworzony zostanie katalog z dzisiejsza data i do niej zostana wgrane dane

target_dir="rsync://${LOGIN}@${SERVER}/${LOGIN}/$current_date/"

# Lokalizacja, z której zostana usuniete dane

target_dir_del="rsync://${LOGIN}@${SERVER}/${LOGIN}/$old_date/"

# WYKONANIE KOPII DO KATALOGU DOCELOWEGO

rsync_command="rsync -avWHs --password-file=$PASS_SECRET  $SOURCE_DIR $target_dir"
eval $rsync_command


# USUNIECIE DANYCH STARSZYCH NIŻ 28dni

#utworzenie tymczasowego, nieistniejącego katalogu na serwerze źródłowym

source_dir_del="$SOURCE_DIR/non_exist/"
mkdir $source_dir_del

rsync_command_del="rsync -avWHs --delete --password-file=$PASS_SECRET $source_dir_del $target_dir_del"
eval $rsync_command_del

#usunięcie katalogu tymczasowego
rmdir $source_dir_del

Na początku skryptu znajdują się zmienne, które należy dostosować do własnych potrzeb. Znajdziesz je w Danych technicznych usługi cyber_Storage w panelu klienta.

  • LOGIN – Login Twojej usługi w polu Konto
  • SERVER: Adres serwera cyber_Storage ADRES SERWERA
  • SOURCE_DIR: Bezpośrednia ścieżka do katalogu, z którego będą kopiowane dane.
  • PASS_SECRET: Bezpośrednia ścieżka do pliku, w której utworzony jest plik z hasłem z punktu 5. instrukcji.

Uwaga!

Pełny opis działania powyższego skryptu znajdziesz na końcu instrukcji – zapoznaj się z nim, jeśli masz wątpliwości co do operacji wykonywanych przez skrypt. Skrypt ten możesz dowolnie modyfikować pod swoje potrzeby – przedstawiony skrypt to jedynie przykład.
Pamiętaj, że na cyber_Storage nie wykonujemy kopii zapasowych danych – usunięcie danych z serwera i jego częstotliwość wykonuj świadomie!

Po uzupełnieniu danych zapisz plik („ctrl”+”o” i potwierdź Enter)

8. Nadaj uprawnienia 700 dla pliku ze skryptem: chmod 700 skrypt.sh

9. Jeśli chcesz, aby skrypt wywoływany był cyklicznie, dodaj jego wywołanie w zadaniu CRON, np. raz dziennie:
0 23 * * * /SCIEŻKA_DO_SKRYPTU/skrypt.sh

0 23 * * * oznacza, że skrypt będzie uruchamiany o godzinie 23:00 każdego dnia. Jest to oczywiście przykładowa częstotliwość wywoływania CRON

Na usługach z naszą administracją możesz dodać zadanie CRON zgodnie z instrukcją: https://cyberfolks.pl/pomoc/jak-ustawic-zadania-cron/

Gotowe!

Opis skryptu

Na początku skryptu znajdują się zmienne, które należy dostosować do własnych potrzeb. Następnie skrypt pobiera bieżącą datę i datę sprzed 28 dni. Następnie tworzony jest docelowy katalog na serwerze o nazwie zawierającym bieżącą datę, do którego będą kopiowane dane oraz określona zostaje ścieżka, z której pliki mają zostać usunięte – czyli wszystkie pliki z katalogów starszych niż 28 dni od bieżącej daty. Użyte polecenie rsync korzysta z deamona rsync.

Następnie wykonywana jest kopii zapasowa danych z lokalnego katalogu do docelowego na serwerze za pomocą polecenia rsync z następującymi opcjami:

  • a: Tryb archiwalny, który zachowuje właściwości plików, takie jak uprawnienia, stempel czasowy, itp.
  • -v: Tryb verbose, wyświetla szczegółowe informacje podczas procesu synchronizacji.
  • -W: Kopiowanie plików specjalnych w sposób przewodni (także w trybie archiwalnym).
  • -H: Zachowuje dowiązania symboliczne na plikach źródłowych.
  • -s: Tryb synchronizacji, który usuwa pliki na docelowym serwerze, które nie istnieją na lokalnym systemie

Następnie tworzony jest katalog tymczasowy na lokalnym komputerze (source_dir_del), który służy do symulacji usunięcia danych starszych niż 28 dni. Katalog ten nie istnieje na serwerze źródłowym. W kolejnym kroku wykonywane jest usunięcie danych starszych niż 28 dni z docelowego katalogu na serwerze, używając opcji --delete w poleceniu rsync. Dane te symulowane są przez katalog tymczasowy source_dir_del. Na końcu usuwany jest tymczasowy katalog lokalny source_dir_del.

jak-wykorzystac-rsync-do-automatycznego-wykonywania-kopii-zapasowych-na-cyber_storage
>
Magdalena Pietraszek