Backupowanie danych z użyciem Kopii
Spis treści
Tak, to narzędzie naprawdę nazywa się Kopia. Po polsku. Szukanie go w Google bywa przez to zabawne, dlatego w wynikach wypatruj raczej “KopiaIO”.
Kopia robi szybkie, szyfrowane i deduplikowane backupy. W działaniu przypomina restica, ale ma kilka rzeczy, które ułatwiają życie: sensowne domyślne polityki przechowywania wersji, automatyczne sprzątanie repozytorium i, jeśli ktoś lubi, graficzny interfejs.
Na Mikrusie#
Specjalnego mikrusowego skrótu tu nie ma. Kopię instalujesz dokładnie tak samo jak na każdym innym serwerze z Ubuntu czy Debianem.
Szukasz darmowego miejsca na repozytorium zamiast płatnej chmury? Kopia z powodzeniem zapisze dane lokalnie, również na dokupionym Storage (/storage/). Właśnie na tym przykładzie pokazuję wszystko niżej.
Na dowolnym serwerze (Ubuntu/Debian)#
W domyślnych repozytoriach Kopii nie znajdziesz. Trzeba dodać oficjalne repozytorium projektu (jedno i to samo dla Ubuntu i Debiana):
sudo curl -s https://kopia.io/signing-key | sudo gpg --dearmor -o /etc/apt/keyrings/kopia-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources.list.d/kopia.list
sudo apt update
sudo apt install kopia
Zakładanie repozytorium#
Na dobry początek repozytorium na lokalnym dysku. W przykładzie na dodatkowym Storage:
sudo mkdir -p /storage/kopia-repo
kopia repository create filesystem --path=/storage/kopia-repo --password=twoje-bardzo-mocne-haslo
To hasło szyfruje Twoje backupy. Zgubisz je, to danych nie odzyskasz, nawet mając wszystkie pliki repozytorium pod ręką. Menedżer haseł, i to od razu.
Połączenie z repozytorium Kopia zapamiętuje u siebie (w ~/.config/kopia/). W kolejnych komendach nie podajesz więc już --path, wystarczy samo hasło.
Pierwszy backup#
kopia snapshot create /etc --password=twoje-bardzo-mocne-haslo
Lista zrobionych snapshotów:
kopia snapshot list --password=twoje-bardzo-mocne-haslo
I tu miła niespodzianka. Kopia ma od razu rozsądną domyślną politykę przechowywania wersji (godzinowe, dzienne, tygodniowe, miesięczne, roczne) i po każdym backupie sama uruchamia porządki w repozytorium. W wielu innych narzędziach trzeba to wszystko konfigurować ręcznie. Tutaj po prostu działa.
Automatyzacja przez cron#
sudo crontab -e
0 3 * * * KOPIA_PASSWORD=twoje-bardzo-mocne-haslo /usr/bin/kopia snapshot create /etc /home >> /var/log/kopia-backup.log 2>&1
Działa, ale hasło wpisane prosto w crontab zobaczy każdy, kto ma dostęp do crontab -l. Lepiej trzymać je w pliku, który przeczyta wyłącznie root:
sudo bash -c 'echo "twoje-bardzo-mocne-haslo" > /etc/kopia.pass && chmod 600 /etc/kopia.pass'
0 3 * * * KOPIA_PASSWORD=$(cat /etc/kopia.pass) /usr/bin/kopia snapshot create /etc /home >> /var/log/kopia-backup.log 2>&1
Przywracanie danych#
Najpierw ID snapshotu, który chcesz przywrócić:
kopia snapshot list --password=twoje-bardzo-mocne-haslo
Potem przywrócenie do wybranego katalogu:
kopia snapshot restore ID-snapshotu /tmp/przywrocone --password=twoje-bardzo-mocne-haslo
Zamiast ID-snapshotu wpisujesz identyfikator z poprzedniej komendy, np. k99c58a5fe8acb5b17f4eb9a50f3da493.
Rada na marginesie: przećwicz przywracanie teraz, na spokojnie. Nie wtedy, kiedy serwer właśnie leży i wszyscy na Ciebie patrzą.
Najczęstsze błędy#
Zapomniane hasło do repozytorium. Tak jak w restic, żadnego odzyskiwania nie ma. Backup bez hasła trzymanego w bezpiecznym miejscu to backup, którego pewnego dnia po prostu nie otworzysz.
Repozytorium na dysku sieciowym działa wolno albo się sypie. Kopia najlepiej czuje się na zwykłym systemie plików, czyli na lokalnym dysku albo Storage. Montowania typu FUSE potrafią napsuć krwi, zupełnie jak przy rsnapshot.
Jeśli szukasz miejsca dla swoich developerskich potrzeb, to zapoznaj się z ofertą serwerów VPS od Mikrusa.
SerweryVPS już od 35 zł rocznie.
Dowiedz się więcej