Backup serwera VPS i Rclone

Jak szybko i skutecznie zrobić backup serwera vps ?

Regularny backup serwera VPS to kluczowe zadanie dla każdego administratora, niezależnie od skali prowadzonego projektu. Backupy są konieczne, aby w razie awarii móc przywrócić dane oraz usługi bez zbędnych opóźnień. Dlatego warto wiedzieć, jak efektywnie zautomatyzować ten proces.

Jednym z najczęściej wybieranych narzędzi do backupu w systemach Linux jest Rsync. To sprawdzone rozwiązanie, jednak nie wystarczy zapisać danych backupu wyłącznie na dysku serwera VPS. W razie awarii sprzętu, zarówno serwer, jak i dane backupowe mogą zostać utracone. Z tego powodu warto przechowywać kopie zapasowe w zewnętrznych lokalizacjach, takich jak chmura.

Jeśli korzystasz z serwera VPS do prowadzenia strony firmowej, bloga, sklepu internetowego, poczty, czy innych usług, prawdopodobnie zależy Ci na tanim, ale solidnym rozwiązaniu backupowym. Chcesz, aby dane były bezpieczne, a proces tworzenia kopii zapasowych – automatyczny. Na szczęście rozwój technologii chmurowych sprawił, że wiele firm oferuje darmowe przestrzenie dyskowe w chmurze, które idealnie nadają się do tego celu.

Jak wykonać backup serwera VPS za pomocą Rclone ?

Jednym z najlepszych narzędzi do przechowywania kopii zapasowych w chmurze jest Rclone. To wszechstronne narzędzie, które pozwala na tworzenie backupów do ponad 40 różnych usług chmurowych, w tym takich jak Google Drive, Dropbox, OneDrive, Amazon S3 i wielu innych.

W tym artykule pokażę, jak krok po kroku skonfigurować backup serwera VPS z wykorzystaniem Rclone i Google Drive, który oferuje darmowe 15 GB przestrzeni.

Instalacja Rclone na serwerze VPS

Rclone nie jest domyślnie zainstalowany w systemie, więc pierwszym krokiem będzie jego instalacja. Wykonaj poniższe polecenia w terminalu:

$ sudo apt install curl
$ curl https://rclone.org/install.sh | sudo bash

Po zainstalowaniu Rclone, musisz skonfigurować tzw. „remotes”, czyli połączenia z wybraną usługą chmurową, np. z Google Drive.

Konfiguracja Rclone dla backupu serwera VPS

Aby skonfigurować Rclone do pracy z Google Drive, wpisz w terminalu:

$ rclone config

Postępuj zgodnie z instrukcjami, wybierając Google Drive jako usługę do przechowywania kopii zapasowych. Po zakończeniu konfiguracji będziesz mógł bez problemu przesyłać pliki z serwera VPS do Google Drive.

Jest to nazwa twojego remote
U mnie GoogleDrive ma nr 15, u ciebie może być inny. Przejrzyj listę i wpisz odpowiedni nr dla GoogleDrive
Wciśnij po prostu Enter
tutaj także Enter
wciśnij Enter
wciśnij Enter
Skopiuj cały link po https:// w swojej konsoli i wklej w przeglądarkę internetową. Postępuj zgodnie z informacjami, a na końcu skopiuj z przeglądarki podany kod weryfikacyjny i wklej w konsolę i naciśnij Enter jak w powyższym przykładzie

Co warto backupować na serwerze VPS?

W przypadku backupów serwera VPS kluczowe jest zabezpieczenie następujących elementów:

  • Plików i baz danych stron internetowych.
  • Wiadomości e-mail.
  • Plików konfiguracyjnych serwera.
  • Logów systemowych.

Automatyzacja backupu serwera VPS – Skrypty

Rclone umożliwia zautomatyzowanie całego procesu backupu. Poniżej znajdziesz skrypty, które automatycznie spakują i skopiują ważne dane na Google Drive, a następnie usuną lokalne kopie z serwera VPS, aby oszczędzać miejsce.

Skrypt backupu plików strony internetowej

#!/usr/bin/env bash
# Katalog dla backupów plików
BACKUP_DIR="/StronaPliki-backup-1"
# Nazwa magazynu Google Drive =remotes- jaką podałeś przy konfiguracji rclone
REMOTE="googledrive"
# Tworzy katalog dla zrzutów na serwerze
mkdir -p "$BACKUP_DIR"
# Programy wykonawcze
    # Informacja o rozpoczęciu pracy
    echo -e "===\nRozpoczynam operacje na katalogu ze stroną."
    # Pakuje wstępnie katalog z plikami strony do jednego pliku
    tar -cf $BACKUP_DIR/twojastrona.tar /var/www/scieżka-do-twojej-strony-internetowej/
    # Kompresuje utworzony plik .tar z elementami strony
    gzip $BACKUP_DIR/twojastrona.tar
    # Wysyła skompresowany plik z elementami backupowanej strony na dysk Google
    /usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 $BACKUP_DIR $REMOTE:$BACKUP_DIR
    # Informacje o zakończeniu pracy backupu
    echo -e "===\nZakończono backup plików strony twojastrona.pl."
# Usunięcie katalogu backupu z serwera VPS
rm -rf /StronaPliki-backup-1

Skrypt backupu bazy danych MySQL

#!/usr/bin/env bash
# Katalog dla bazy danych
BACKUP_DIR="/Mysql-backup-1/nazwa-bazy"
# Użytkownik bazy danych
MYSQL_USER="nazwa-użytkownika"
# Ścieżka do Mysql - Nie zmieniać!!!
MYSQL=/usr/bin/mysql
# Hasło do bazy danych
MYSQL_PASSWORD="twoje-hasło"
# Ścieżka do MySQLDump - Nie zmianiać!!!
MYSQLDUMP=/usr/bin/mysqldump
# Nazwa magazynu googledrive, stworzona przy konfiguracji rclone
REMOTE="googledrive"
# Tworzenie katalogu do zrzutu bazy
mkdir -p "$BACKUP_DIR"
# Tworzenie połączenia z bazą danych
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
# Program wykonawczy
for db in $databases; do
    # Komunikat rozpoczęcia pracy
    echo -e "===\nRozpoczynam operacje na $db."
    # Zrzut bazy danych do pliku
    $MYSQLDUMP --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db > "$BACKUP_DIR/$db.sql"
    # Komprecja bazy danych
    gzip $BACKUP_DIR/$db.sql
    # Wysłanie bazy danych na dysk Google
    /usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 $BACKUP_DIR $REMOTE:$BACKUP_DIR
    # Informacja o przeprowadzonych operacjach
    echo -e "===\nZakończono backup dla bazy $db. Spakowana baza powinna zaleźć się na dysku Google."
done
# Usuwa katalog backupu z serwera VPS w celu oszczędzaniam miejsca na dysku
rm -rf /Mysql-backup-1

Skrypt backupu poczty e-mail

#!/usr/bin/env bash
# Katalog dla backupów maili
BACKUP_DIR="/Mail-backup-1/vmail"
# Nazwa magazynu Google Drive jaką podałeś przy konfiguracji rclone
REMOTE="googledrive"
# Tworzy katalog dla zrzutów na serwerze
mkdir -p "$BACKUP_DIR"
# Programy wykonawcze
    # Informacja o rozpoczęciu pracy
    echo -e "===\nRozpoczynam operacje na katalogu /var/vmail."
    # Pakuje wstępnie katalog z plikami maili do jednego pliku
    tar -cf $BACKUP_DIR/maile.tar /var/vmail/
    # Kompresuje utworzony plik .tar z elementami katalogu maili
    gzip $BACKUP_DIR/maile.tar
    # Wysyła skompresowany plik z elementami backupowu na dysk Google
    /usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 $BACKUP_DIR $REMOTE:$BACKUP_DIR
    # Informacje o zakończeniu pracy backupu
    echo -e "===\nZakończono backup plików maili."
# Usunięcie katalogu backupu z serwera VPS
rm -rf /Mail-backup-1

Automatyzacja backupu – dodaj skrypty do Crontaba

Aby zautomatyzować proces, dodaj powyższe skrypty do Crontaba. Dzięki temu backup serwera VPS będzie wykonywany automatycznie w określonych odstępach czasu.

Wnioski

Regularny backup serwera VPS to podstawa bezpiecznego zarządzania danymi. Dzięki Rclone i darmowym usługom chmurowym, takim jak Google Drive, możesz łatwo i tanio zabezpieczyć swoje dane przed utratą. Automatyzacja procesu za pomocą skryptów sprawia, że tworzenie kopii zapasowych staje się bezobsługowe i niezawodne.

Nie czekaj, aż awaria sprzętu spowoduje utratę cennych danych. Skonfiguruj swój backup serwera VPS już dziś i ciesz się spokojem, wiedząc, że Twoje dane są bezpieczne w chmurze.

Aktualizacja 20.02.2024

Google zacieśniło politykę bezpieczeństwa, sam rclone także przeszedł drobne zmiany, więc sporo osób może mieć obecnie problem z uruchomieniem backupu serwera vps na podstawie tego tutoriala.

Jeśli na maszynie na jakiej uruchamiasz backup rclone nie posiadasz przeglądarki internetowej z pełną obsługa JS, a na serwerze vps nie posiadasz jej na pewno, to możesz mieć problem z autoryzacją.

Ja rozwiązałem to po najmniejszej linii oporu, czyli odpaliłem rclone config na maszynie gdzie mam przeglądarkę internetową (środowisko graficzne) z dokładnie takimi samymi parametrami jak to robiłem na vps. Po zakończeniu działania skryptu został wygenerowany plik rclone.conf, który najzwyczajniej przeniosłem na vps.

Jeżeli rclone config uruchamiasz na maszynie z windowsem, to plik znajdziesz w C:\Users\nazwa-urzytkownika\AppData\Roaming\rclone\rclone.config

pod linuksem znajdziesz go w

/root/.config/rclone/rclone.conf

Trochę okrężny sposób aby zmusić rclone z googledrive do działania ale skuteczny 🙂

Aktualizacja 21.02.2024

Dzisiaj spotkała mnie niemiła niespodzianka niestety. Wczoraj założyłem nowe konto Google specjalnie pod backup i wykupiłem opcję 100GB przestrzeni, gdyż akurat tutaj miałem taką potrzebę. Przeważnie korzystam z darmowych kont 15GB i te działają bezproblemowo po kilka lat, natomiast nowe zostało mi zablokowane.

Dzisiaj przy próbie zalogowania się na dysk Google zobaczyłem komunikat z prośbą o potwierdzenie (wpisanie nr telefonu), po uzupełnieniu stosownych danych … niespodzianka. Tego numeru telefonu nie można użyć do weryfikacji. Nie wiem po co podaje się np. adres email dodatkowy itp. ale żaden inny sposób odblokowania konta nie działa, w kółko żąda podania nr tel. który jest zablokowany. Cóż, pogodziłem się z myślą że konto straciłem, wraz z kilkoma złotymi, za które wykupiłem dodatkowe miejsce.

Trochę mnie poirytowała ta sytuacja nie powiem jednak backupy muszą być !!! Do tego celu wykorzystałem tym razem OnDrive Micro$oftu. który leżał nieużywany od kilku miesięcy. Jak podpiąć OneDrive pod rClone? ano dokładnie w taki sam sposób jak GoogleDrive, jedyną zmianą jest podanie medium OneDrive przy uruchomieniu rclone conf. Reszta konfiguracji przebiega prawie tak samo jak przy GoogleDrive.

Cóż to chyba była moja ostatnia przygoda z płatnymi usługami Google :). To było moje konto prywatne, więc skończyło się na stracie kilku złotych i czasu ale gdyby to było konto firmowe ? gdzie lecą backupy sklepów i stron firmowych ? Tak, wtedy byłby to wielki problem.

Artykuł pierwotnie był opublikowany na stronie botset.pl dnia 28.08.2021r.

Podziel się komentarzem na Forum