LW IT Solutions
« Blog Overview /IT & Networks / Jak automatyzować kopie zapasowe Raspberry Pi na...
This post in other languages:

Jak automatyzować kopie zapasowe Raspberry Pi na UniFi NAS

Jak automatyzować kopie zapasowe Raspberry Pi na UniFi NAS
Spis treści
  1. Krok 1: Przygotowanie serwera UNAS Pro
  2. Krok 2: Montowanie zasobu UNAS Pro w Raspberry Pi
  3. Krok 3: Zabezpieczenie poświadczeń MySQL
  4. Krok 4: Skrypt kopii zapasowej
  5. Krok 5: Automatyzacja za pomocą Crona
  6. Źródła

Utrzymywanie usług self-hosted, automatyki domowej lub aplikacji webowych na Raspberry Pi wiąże się z jednym kluczowym wyzwaniem: podatnością kart microSD. Są one narażone na uszkodzenia, szczególnie przy intensywnych cyklach odczytu i zapisu baz danych. Aby zbudować naprawdę odporną architekturę, dane nie mogą znajdować się wyłącznie na samym urządzeniu Pi. Należy przenosić je na redundatne rozwiązanie klasy korporacyjnej. Poniżej przedstawiono proces konfiguracji w pełni zautomatyzowanej, codziennej kopii zapasowej z Raspberry Pi bezpośrednio na serwer Ubiquiti UNAS Pro, obejmujący zrzut baz danych (mysqldump) oraz kompresję plików.

Krok 1: Przygotowanie serwera UNAS Pro

Serwer musi być gotowy na przyjęcie danych.

Diagram do artykułu: Przygotowanie serwera UNAS Pro, Montowanie zasobu UNAS Pro w Raspberry Pi, Zabezpieczenie poświadczeń MySQL …
Przebieg z artykułu w 5 krokach: Przygotowanie serwera UNAS Pro, Montowanie zasobu UNAS Pro w Raspberry Pi, Zabezpieczenie poświadczeń MySQL, Skrypt kopii zapasowej ….
  1. Zalogować się do konsoli UniFi OS i otworzyć aplikację Storage / NAS.
  2. Utworzyć nowy folder współdzielony (np. Pi_Backups).
  3. Utworzyć dedykowanego użytkownika lokalnego (np. backup_user) z silnym hasłem.
  4. Przypisać temu użytkownikowi uprawnienia odczytu i zapisu (Read/Write) do folderu Pi_Backups.
  5. Upewnij się, że protokół SMB (Server Message Block) jest włączony dla tego udziału.

Krok 2: Montowanie zasobu UNAS Pro w Raspberry Pi

Raspberry Pi powinno traktować zasób sieciowy jak lokalny dysk fizyczny, co osiąga się za pomocą cifs-utils.

  1. Połącz się przez SSH z Raspberry Pi.
  2. Zainstalować niezbędne narzędzia: sudo apt update oraz sudo apt install cifs-utils.
  3. Utworzyć punkt montowania: sudo mkdir -p /mnt/unas_backup.
  4. Utworzyć ukryty plik z poświadczeniami w /etc/.unas_creds (zawierający: username=..., password=..., domain=WORKGROUP). Zabezpieczyć go poleceniem: sudo chmod 600 /etc/.unas_creds.
  5. Edytuj plik /etc/fstab, dodając linię: //192.168.1.XXX/Pi_Backups /mnt/unas_backup cifs credentials=/etc/.unas_creds,uid=1000,gid=1000,iocharset=utf8 0 0.
  6. Przetestować montowanie: sudo mount -a.

Krok 3: Zabezpieczenie poświadczeń MySQL

Aby umożliwić skryptowi wykonanie mysqldump bez wpisywania hasła, należy je bezpiecznie zapisać.

  1. Utworzyć plik konfiguracyjny: nano ~/.my.cnf.
  2. Dodać: [client], user=root, password=YourDatabasePassword.
  3. Zabezpiecz plik: chmod 600 ~/.my.cnf.

Krok 4: Skrypt kopii zapasowej

Skrypt wykonuje zrzut bazy, kompresję folderów i usuwanie starych archiwów.

  1. Utworzyć plik ~/pi_backup.sh i wkleić kod:
#!/bin/bash
BACKUP_DATE=$(date +"%Y-%m-%d")
NAS_MOUNT="/mnt/unas_backup"
DEST_DIR="$NAS_MOUNT/$BACKUP_DATE"
TARGET_FOLDERS="/var/www/html /etc/nginx /home/pi/docker-data"

if ! mountpoint -q $NAS_MOUNT; then exit 1; fi
mkdir -p "$DEST_DIR"
mysqldump --all-databases | gzip > "$DEST_DIR/db_backup_$BACKUP_DATE.sql.gz"
tar -czf "$DEST_DIR/files_backup_$BACKUP_DATE.tar.gz" $TARGET_FOLDERS
find "$NAS_MOUNT" -mindepth 1 -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \;
  1. Ustawić uprawnienia wykonywania: chmod +x ~/pi_backup.sh.

Krok 5: Automatyzacja za pomocą Crona

Harmonogram uruchamiania skryptu codziennie o 2:00 w nocy.

  1. Otworzyć crontab: crontab -e.
  2. Dodać linię: 0 2 * * * $HOME/pi_backup.sh > $HOME/backup_log.txt 2>&1.

Rezultatem jest zautomatyzowany plan odtwarzania po awarii: co noc bazy danych są eksportowane, pliki konfiguracyjne oraz katalogi aplikacji kompresowane i przesyłane przez sieć na serwer Ubiquiti UNAS Pro, a archiwa starsze niż dwa tygodnie są automatycznie usuwane.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Data Privacy

Śledź tę kategorię przez RSS

Digital Analytics

Śledź tę kategorię przez RSS

Digital Marketing

Śledź tę kategorię przez RSS

IT & Networks

Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wordpress Hacks

Śledź tę kategorię przez RSS