Awaria dysku, blad ludzki, atak ransomware - powodow utraty danych jest wiele, ale sposob na ich unikniecie tylko jeden: regularne, zautomatyzowane backupy. W tym artykule pokaze Ci sprawdzone strategie i narzędzia, ktore pomoga chronic Twoje dane.
Zasada 3-2-1
To fundamentalna zasada backupu, ktora stosuja profesjonalne dzialy IT na calym swiecie:
- 3 kopie danych (oryginal + 2 backupy)
- 2 rozne nosniki danych (dysk lokalny + chmura)
- 1 kopia poza siedziba firmy (offsite)
Przestrzeganie tej zasady sprawia, ze zadne pojedyncze zdarzenie - pozar, kradziez, awaria dysku czy atak ransomware - nie moze zniszczyc wszystkich kopii jednoczesnie.
rsync - prosty i skuteczny
Rsync to najpopularniejsze narzędzie do synchronizacji plików w Linuxie. Dziala lokalnie i przez SSH, kopiujac tylko roznice między źródłem a celem. Przyklad podstawowego backupu:
rsync -avz --delete /srv/dane/ uzytkownik@backup-serwer:/backup/dane/
Parametr -a zachowuje atrybuty plików, -v wyświetla postep, -z kompresuje dane, a --delete usuwa pliki z celu, ktore nie istnieja juz w zrodle. Rsync idealnie nadaje sie do codziennych backupow i mozna go latwo zautomatyzowac przez cron.
Borg - deduplikacja i szyfrowanie
Borg to zaawansowane narzędzie oferujace deduplikacje, kompresje i szyfrowanie AES-256. Dzieki deduplikacji kazda kolejna kopia zajmuje tylko tyle miejsca, ile zmienilo sie od ostatniego backupu. To oszczedza zarowno miejsce, jak i czas transferu.
borg init --encryption=repokey /mnt/backup/repo
borg create --stats /mnt/backup/repo::'{hostname}-{now:%Y-%m-%d}' /etc /home /srv
# Czyszczenie starych kopii (np. 7 dziennych, 4 tygodniowe)
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /mnt/backup/repo
Restic - backup do chmury
Restic to nowoczesne narzędzie z natywna obsluga chmury: S3, Backblaze B2, Azure Blob, Google Cloud Storage i SFTP. Kazdy backup jest domyslnie szyfrowany AES-256. Przyklad backupu do S3:
restic init --repo s3:s3.amazonaws.com/moj-bucket/restic
restic backup /srv/dane
restic snapshots # lista dostepnych kopii
Automatyzacja przez cron
Niezaleznie od wybranego narzędzia, kluczem jest automatyzacja. Przyklad zadania cron uruchamianego codziennie o 2:00:
0 2 * * * /usr/local/bin/backup.sh
Skrypt backup.sh powinien zawierac logike backupu, sprawdzenie czy sie powiodl i opcjonalnie wyslanie powiadomienia. Pamietaj tez o regularnym testowaniu procesu przywracania - backup, ktorego nie mozesz przywrocic, jest bezwartosciowy.