🔄 Automatyczne backupy i rotacja kopii z rsnapshot – kompletna konfiguracja w Linuksie
rsnapshot to potężne, a jednocześnie bardzo lekkie narzędzie do tworzenia przyrostowych kopii zapasowych lokalnych i zdalnych systemów. Wykorzystuje rsync i twarde dowiązania (hardlinks), co pozwala przechowywać wiele wersji danych przy minimalnym zużyciu miejsca.
Nadaje się idealnie do:
- backupu katalogów domowych, konfiguracji, serwerów www,
- lokalnych i zdalnych kopii (np. przez SSH),
- utrzymywania wielu punktów w czasie (np. co godzinę, dzień, tydzień, miesiąc).
🧰 Zalety rsnapshot
| Cecha | Opis |
|---|---|
| 💾 Efektywność | używa twardych dowiązań, nie duplikuje plików |
| ⏱️ Wydajność | kopiuje tylko zmienione pliki dzięki rsync |
| 🔁 Rotacja wersji | automatycznie zarządza punktami przywracania |
| 🔐 Zdalny backup | wspiera SSH bez dodatkowej konfiguracji |
| 🛠️ Łatwość automatyzacji | z cron lub systemd.timer |
📦 Krok 1: Instalacja rsnapshot
🟢 Debian/Ubuntu:
sudo apt install rsnapshot
🔵 Fedora/RHEL/Alma:
sudo dnf install rsnapshot
⚫ Arch/Manjaro:
sudo pacman -S rsnapshot
🛠️ Krok 2: Konfiguracja
Kopia domyślnej konfiguracji:
sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
Edytuj główny plik:
sudo nano /etc/rsnapshot.conf
🔧 Najważniejsze zmiany:
config_version 1.2
snapshot_root /backup/rsnapshot/
no_create_root 1
retain hourly 6
retain daily 7
retain weekly 4
retain monthly 3
backup /home/youruser/ localhost/
#backup user@remote:/var/www/ remote-www/
snapshot_root– miejsce, gdzie będą zapisywane kopie,retain– ile kopii przechowywać (np. 6 godzinnych, 7 dziennych),backup– co kopiować (lokalnie lub przez SSH).
📌 localhost/ to etykieta katalogu backupu – możesz mieć wiele źródeł.

🔁 Krok 3: Test działania
Sprawdzenie konfiguracji:
sudo rsnapshot configtest
Test bez zapisu:
sudo rsnapshot -t hourly
Wykonanie backupu:
sudo rsnapshot hourly
Po wykonaniu znajdziesz dane w /backup/rsnapshot/hourly.0/localhost/home/youruser/.
🕒 Krok 4: Automatyzacja z cron
Uruchom crontab:
sudo crontab -e
Dodaj np.:
0 */4 * * * /usr/bin/rsnapshot hourly
30 23 * * * /usr/bin/rsnapshot daily
0 3 * * 1 /usr/bin/rsnapshot weekly
15 4 1 * * /usr/bin/rsnapshot monthly
Lub użyj systemd.timer – jeśli wolisz systemowe harmonogramy.
🛡️ Krok 5: Backup przez SSH (zdalny serwer)
W konfiguracji:
backup youruser@192.168.1.20:/etc/ remote-etc/
Dodaj wcześniej klucz SSH do autoryzacji:
ssh-copy-id youruser@192.168.1.20
Teraz rsnapshot połączy się bez hasła.
♻️ Krok 6: Przywracanie plików
Backupy są w zwykłych katalogach – możesz je przywrócić:
cp /backup/rsnapshot/daily.1/localhost/home/youruser/docs/plik.txt ~/docs/
Lub zamontować z bind, udostępnić przez Samba, rsync, scp itp.
🧠 Pro tipy
- Możesz używać
excludew konfiguracji (np.*.iso,tmp/,node_modules/) - Przechowuj backup na dysku zewnętrznym, partycji LUKS lub zdalnym montowanym przez SSHFS/NFS
- Dodaj monitoring logów i powiadomienia e-mail z
logwatch,systemd,mailx
✅ Podsumowanie
✔️ rsnapshot to potężne, szybkie i niewymagające narzędzie do zarządzania kopiami zapasowymi,
✔️ przy minimalnym zużyciu miejsca możesz mieć dziesiątki wersji plików,
✔️ świetne do backupu konfiguracji, home, danych serwerowych i lokalnych maszyn.






