Oprogramowanie open-source do robienia backupów na serwerze

systemy open-source do bakcupu serwerów

W świecie administracji serwerami regularne wykonywanie kopii zapasowych to absolutna podstawa bezpieczeństwa danych. Coraz więcej administratorów i właścicieli stron internetowych stawia dziś na rozwiązania open source, które oferują dużą elastyczność, brak opłat licencyjnych i możliwość pełnej kontroli nad infrastrukturą. W tym artykule przedstawiamy najciekawsze narzędzia do backupu serwerów, które sprawdzą się zarówno w małych projektach, jak i rozbudowanych środowiskach VPS czy dedicated. Jeśli dodatkowo interesuje Cię niezawodna infrastruktura pod takie rozwiązania, warto regularnie śledzić aktualizacje naszego rankingu hostingów oraz testy wydajności serwerów.

Zanim przejdziemy do listy narzędzi, warto się zastanowić dlaczego open source to dobry kierunek, zwłaszcza w kontekście serwerów.

Oto kilka kluczowych zalet:

  • Brak opłat licencyjnych – narzędzia open source zwykle są bezpłatne lub obwarowane licencją, która pozwala je używać, modyfikować i rozpowszechniać.
  • Transparencja kodu – można przeglądać kod źródłowy, weryfikować bezpieczeństwo, dostosowywać do własnych potrzeb.
  • Elastyczność i rozszerzalność – społeczność może tworzyć wtyczki, integracje, poprawki bezpieczeństwa.
  • Brak vendor lock-in – nie jesteś uzależniony od jednego producenta, łatwiej zmieniać rozwiązania.
  • Dobre skalowanie i automatyzacja – wiele projektów open source ma lepszą automatyzację, API i elastyczność niż komercyjne odpowiedniki.

Oczywiście są też wyzwania:

  • Czasem trudniejsza konfiguracja, dokumentacja mniej prosta.
  • Brak gwarantowanego wsparcia (choć wiele projektów ma wersje komercyjne lub firmy oferujące wsparcie).
  • W niektórych przypadkach mniejsze wsparcie dla GUI lub analogicznych interfejsów graficznych trzeba działać z linii komend.

Dla serweram gdzie stabilność, bezpieczeństwo i możliwość odtworzenia danych w razie awarii są kluczowe, open source często jest wyśmienitym wyborem.

Lista popularnych (sprawdzonych) narzędzi open-source do backupu serwerów

Poniżej omówię 9 projektów, z podkreśleniem ich mocnych stron, przypadków użycia i potencjalnych minusów. Nie wszystkie narzędzia będą trafiać idealnie do każdego scenariusza, ale wśród nich znajdziesz coś, co będzie pasować do Twojej infrastruktury.

1. Bacula / Bareos

Link do pobrania: https://www.bacula.org/source-download-center

Bacula to klasyka świata open source w dziedzinie backupów sieciowych. Obsługuje środowiska heterogeniczne (Linux, Unix, Windows, macOS).
Jeśli chcesz nowocześniejszej odmiany, Bareos (Backup Archiving Recovery Open Sourced) to fork Baculi z wieloma dodatkami.

Zalety Bacula / Bareos:

  • Architektura klient-serwer – możesz zabezpieczyć wiele hostów.
  • Obsługa różnych backendów (dyski, taśmy, zasoby chmurowe).
  • Szyfrowanie, kompresja, katalog (bazodanowy) do śledzenia backupów.
  • Możliwość integracji z bazami danych, aplikacjami.
  • Wersja komercyjna wspierana przez firmy (np. Bacula Systems), jeśli potrzebujesz wsparcia.

Minusy:

  • Dość złożona konfiguracja, wiele plików konfiguracyjnych.
  • Interfejsy graficzne bywają mniej przyjazne (choć są projekty z Web UI).
  • W mniejszych scenariuszach może być „overkill”.

Kiedy warto użyć: jeśli masz wiele serwerów do zabezpieczenia, chcesz mieć centralne zarządzanie backupami i rozbudowaną automatyzację.

2. Restic

Link do pobrania: https://restic.net/

Restic to stosunkowo „lekkie”, ale potężne narzędzie do backupów z naciskiem na bezpieczeństwo.
Działa jako narzędzie CLI (linia poleceń), ale obsługuje wiele backendów (lokalne, SFTP, S3-kompatybilne, itp.).

Zalety Restic:

  • Szyfrowanie end-to-end (wbudowane).
  • Deduplikacja – unikanie powtarzania danych w backupach.
  • Wydajność i prostota – jedno binarium do wielu systemów operacyjnych.
  • Możliwość automatyzacji przy pomocy skryptów (cron, systemd).

Minusy:

  • Brak natywnych wersji klient-serwer (choć są projekty dodatkowe).
  • Całość zarządzania odbywa się z linii komend – mniej przyjazne GUI.
  • W przypadku dużej skali może brakować funkcji sieciowych, które mają narzędzia klasy Bacula.

Przykład użycia (skrypt backupu katalogu /var/www):

#!/bin/bash

# katalog źródłowy
SRC="/var/www"
# repozytorium backupów (np. na inny serwer via SFTP)
REPO="sftp:user@backup-server:/repozytorium/restic"
# hasło (lub plik z hasłem)
export RESTIC_PASSWORD="moje_haslo_strong"

# inicjalizacja repo (pierwszy raz)
restic init --repo $REPO

# wykonywanie backupu
restic backup $SRC --repo $REPO

# opcjonalnie: usuwanie starych snapshotów, np. zachowaj 30 dni
restic forget --prune --keep-daily 30 --repo $REPO

Możesz ten skrypt dodać do cron, np. uruchamiany codziennie o 2:00:

0 2 * * * /usr/local/bin/backup-www.sh >> /var/log/restic-backup.log 2>&1

3. Duplicati

Link do pobrania: https://duplicati.com/download

Duplicati to ciekawe narzędzie, które działa jako klient do backupów, oferując szyfrowanie, kompresję, backupy przyrostowe i integrację z wieloma zdalnymi magazynami (FTP, SFTP, WebDAV, Amazon S3 i innymi).
Posiada GUI/webowe UI, co ułatwia konfigurację, również na serwerach headless.

Zalety Duplicati:

  • Wygodny interfejs (webowy) do zarządzania kopiami.
  • Możliwość wyboru wielu backendów zdalnych, co daje elastyczne przechowywanie.
  • Szyfrowanie (AES / GPG) oraz kompresja.
  • Backupy przyrostowe, filtrowanie plików.

Minusy:

  • Jako klient, nie jest typowym narzędziem typu klient-serwer (ale można działać w środowisku serwerowym, instalując Duplicati na maszynach klienckich).
  • W bardzo dużych środowiskach może brakować granicznej skalowalności.
  • Czasem mogą występować problemy ze stabilnością lub błędy związane z połączeniami do wielu backendów w jednym zadaniu.

Przykład instalacji Duplicati na Debianie/Ubuntu (skrócony):

# pobierz najnowszą wersję .deb (strona duplicati.com)
wget https://updates.duplicati.com/betas/duplicati_2.X.X.X_beta_amd64.deb
sudo dpkg -i duplicati_2.X.X.X_beta_amd64.deb
sudo apt-get -f install  # aby dokończyć instalację zależności

# uruchom usługi
sudo systemctl enable duplicati
sudo systemctl start duplicati

# Duplicati dostępny pod adresem http://localhost:8200 (web UI)

Potem w UI konfigurujesz zadania backupu, wybierasz foldery, harmonogram, backend.

4. UrBackup

Link do pobrania: https://www.urbackup.org/download.html

UrBackup to rozwiązanie klient-serwer, które obsługuje zarówno backupy plikowe, jak i obrazów dysków (image backup).
Ma interfejs webowy do zarządzania, automatyzację i dobre możliwości odzyskiwania (restore).

Zalety UrBackup:

  • Możliwość wykonywania backupu obrazów (bare metal restore) i plików.
  • Interfejs webowy, prostsza konfiguracja klienta i serwera.
  • Dobrze zoptymalizowane incrementalne backupy, monitorowanie zmian w katalogach.
  • Możliwość backupu przez internet, zdalnie.

Minusy:

  • W dużej skali (setki / tysiące klientów) może być mniej dojrzały niż Bacula.
  • Czasem ograniczenia w plugins / obsłudze aplikacji (np. bazy danych).
  • Mniej elastyczny niż rozwiązania pure CLI w ekstremalnych wdrożeniach.

Przykład:

  • Zainstaluj urbackup-server na maszynie głównej.
  • Zainstaluj klienta urbackup-client na serwerze, który chcesz zabezpieczyć.
  • W interfejsie webowym serwera dodaj klienta, ustaw reguły backupu (co, kiedy).
  • W przypadku restore można użyć bootowalnego nośnika i przywrócić całą maszynę.

5. Amanda

Link do pobrania: https://www.amanda.org/download.php

Amanda (Advanced Maryland Automatic Network Disk Archiver) to klasyczne narzędzie open source do backupów sieciowych.
Serwer Amanda steruje kopiami ze zdalnych hostów, korzystając z klientów.

Zalety Amanda:

  • Działa w modelu klient-serwer, wielu hostów.
  • Obsługa kopii na dyski, taśmy oraz inne media.
  • Rozsądne narzędzia do zarządzania harmonogramami, rotacją, itp.
  • Dojrzały projekt, istnieje długo i jest sprawdzony w praktyce.

Minusy:

  • Interfejs GUI ograniczony lub w wersji komercyjnej.
  • Konfiguracja może być skomplikowana.
  • Współczesne integracje (np. chmurowe backendy) bywają dodane dopiero przez pluginy/trzecie strony.

6. BorgBackup / borg

Link do pobrania: https://www.borgbackup.org/releases

Borg (BorgBackup) to bardzo popularny projekt open source, ceniony za deduplikację, szybkość i bezpieczeństwo.
Jest często rekomendowany jako jeden z najlepszych lekkich rozwiązań do backupów plikowych.

Zalety Borg:

  • Świetna deduplikacja, jeśli masz dużo podobnych plików, oszczędzasz miejsce.
  • Kompresja, szyfrowanie, wszystko wbudowane.
  • Możliwość tworzenia „repozytoriów” backupów i przywracania pojedynczych plików.
  • Lekka architektura i dobra wydajność.

Minusy:

  • Nie jest natywnie klient-serwer (chociaż można wykorzystać SSH + skrypty).
  • Brak natywnego GUI (choć są narzędzia wrapperów, np. borgmatic).
  • W skomplikowanych scenariuszach sieciowych może wymagać dopracowywania integracji.

7. Rsync, Rclone, Rdiff-backup

Link do pobrania: https://rsync.samba.org/download.html

To bardziej „narzędzia budulcowe” niż kompletne systemy backupowe, ale zasługują na uwagę:

  • rsync – klasyczne narzędzie do synchronizacji katalogów; często używane jako podstawa prostych backupów (lokalnych, zdalnych).
  • rdiff-backup – łączy rsync + wersjonowanie.
  • Rclone – idealny do pracy z magazynami w chmurze i synchronizacji plików z nimi.

Te narzędzia często stosuje się w skryptach niestandardowych backupów.

8. FreeFileSync

Link do pobrania: https://freefilesync.org/download.php

FreeFileSync to projekt open source do synchronizacji i backupu plików/folderów, z interfejsem graficznym.
Można go używać na różnych systemach operacyjnych.

Zalety:

  • Intuicyjny GUI, łatwa konfiguracja zadania synchronizacji/backupów.
  • Obsługa wielu systemów (Windows, macOS, Linux).
  • Synchronizacja plików + backup (kopiowanie różnicowe).

Minusy:

  • Nie jest narzędziem klasy klient-serwer (raczej pojedyncze maszyny).
  • Brak rozbudowanych funkcji sieciowych, deduplikacji, itp.

9. Clonezilla

Link do pobrania: https://clonezilla.org/downloads.php

Clonezilla to narzędzie do klonowania dysków / obrazów systemów.
Jest mniej narzędziem do codziennego backupu danych, a raczej do tworzenia obrazów maszyn (np. przed migracją, masowych wdrożeń).

Zalety:

  • Możliwość tworzenia obrazów dysku (cały system) i odtwarzania ich (bare metal).
  • Wydajność i niezależność od struktury plików (działa na poziomie bloków).
  • Można używać w trybie wielomaszynowym (Clonezilla Server Edition).

Minusy:

  • Nie idealny do codziennego backupu plików / zmiennych katalogów.
  • Wymaga przerwy w działaniu, bootowania z LiveCD/USB lub trybu offline.

Porównanie narzędzi – które wybrać dla jakiego scenariusza?

Poniżej sugeruję, jakie narzędzie może być dobrym wyborem w konkretnych scenariuszach:

  1. Średnia infrastruktura z wieloma serwerami, chcesz centralne zarządzanieBacula / Bareos
  2. Backup plików + skrypty, prosta konfiguracja, deduplikacjaRestic lub Borg
  3. Potrzebujesz GUI / web UI / łatwości obsługiDuplicati lub UrBackup
  4. Backup całego systemu / obrazów + restore bare metalUrBackup (dla plików + obrazów) lub Clonezilla (gdy offline)
  5. Chcesz samodzielnie komponować backupy do chmury / zróżnicowane backendyDuplicati, Rclone + skrypty
  6. Duże środowisko, integracja z bazami danych / aktywne wsparcieBacula / Bareos, ewentualnie wersje komercyjne

Oczywiście nic nie stoi na przeszkodzie, by łączyć narzędzia, np. używać Restic do backupów katalogów, a Bacula do zarządzania innymi maszynami.


Przykładowy schemat wdrożenia backupu serwera z Restic + SSH + cron

Pokażę Ci, krok po kroku, jak można zbudować prosty, lecz solidny system backupu plików na serwerze z wykorzystaniem Restic i repozytorium zdalnego przez SSH.

Założenia

  • Serwer produkcyjny: prod.example.com
  • Backup host: backup.example.com
  • Na backup host masz katalog /data/backups/restic z uprawnieniami dostosowanymi do użytkownika backupowego.
  • Użytkownik backupuser na backup host musi mieć uprawnienia SSH (klucz publiczny) do serwera produkcyjnego.
  • Chcesz, by codziennie o 3:00 wykonany był backup katalogu /etc, /var/www, /home.
  • Chcesz zachować kopie dzienne przez 14 dni, tygodniowe przez 8 tygodni i miesięczne przez 3 miesiące.

Krok 1: ustaw klucz SSH

Na serwerze produkcyjnym (prod) jako użytkownik, który będzie robił backup:

ssh-keygen -t ed25519 -f ~/.ssh/restic_backup_key
# zostawiasz puste hasło dla klucza
ssh-copy-id -i ~/.ssh/restic_backup_key.pub backupuser@backup.example.com

Na backup host (backup.example.com), wybierz katalog docelowy i nadaj prawa:

sudo mkdir -p /data/backups/restic
sudo chown backupuser:backupuser /data/backups/restic
chmod 700 /data/backups/restic

Krok 2: instalacja restic

Na serwerze produkcyjnym:

sudo apt update
sudo apt install restic    # lub ściągnij binarium, jeśli dystrybucja nie ma pakietu

Krok 3: skrypt backupu (backup-restic.sh)

Stwórz plik np. /usr/local/bin/backup-restic.sh:

#!/bin/bash
# --- konfiguracja ---
SRC_LIST="/etc /var/www /home"
REMOTE_REPO="ssh://backupuser@backup.example.com//data/backups/restic"
export RESTIC_PASSWORD="ToJestMocneHasłoBackupowe"

# inicjalizacja (wykona się tylko, jeśli repozytorium nie istnieje)
restic -r $REMOTE_REPO snapshots >/dev/null 2>&1 || restic init -r $REMOTE_REPO

# backup
for SRC in $SRC_LIST; do
  restic -r $REMOTE_REPO backup $SRC
done

# usuwanie starych snapshotów
restic -r $REMOTE_REPO forget --prune \
  --keep-daily 14 \
  --keep-weekly 8 \
  --keep-monthly 3

Nadaj plikowi prawa:

chmod +x /usr/local/bin/backup-restic.sh

Krok 4: zaplanuj cron

Dodaj wpis do crona, np. przez crontab -e:

0 3 * * * /usr/local/bin/backup-restic.sh >> /var/log/restic-backup.log 2>&1

Teraz codziennie o 3:00 zostanie wykonany backup.

Krok 5: test przywracania

Aby sprawdzić, że backup działa i że można przywrócić dane:

# wyświetl listę snapshotów
restic -r ssh://backupuser@backup.example.com//data/backups/restic snapshots

# przywróć plik /etc/passwd z ostatniego snapshotu do katalogu testowego
restic -r ssh://backupuser@backup.example.com//data/backups/restic restore latest \
  --target /tmp/restore-test --include /etc/passwd

Jeśli plik /tmp/restore-test/etc/passwd się pojawi, masz dowód, że backup działa.

To jest prosty schemat. Możesz go rozbudować, by uwzględnić bazy danych (dumpy MySQL/PostgreSQL), prostą rotację, powiadomienia e-mail, weryfikację integralności itd.


Jak widzisz istnieje sporo darmowych narzędzi, za pomocą których będziesz mógł robić kopie plików na swoim serwerze VPS czy serwerze dedykowanym. Najważniejsze że wszystkie z listy są w wersji open-source, więc możesz ich używać nawet komercyjnie bez dodatkowych żadnych opłat.