Terminal pogryzł człowieka: cya

Kto powiedział, że robienie kopi zapasowych naszego systemu i danych musi być skomplikowaną czynnością? A takie można mieć odczucia przeglądając opcje i konfigurację większości programów o takim przeznaczeniu. Na dodatek ich wspaniałe interfejsy, daemony, wtyczki i pluginy zabierają nam cenne zasoby komputera. A gdyby tak sprowadzić całość do terminala, skonfigurować raz i zapomnieć? Czemu nie. Cover Your Ass(ets).

CYA nie dość, że jest rozwiązaniem terminalowym, to na dodatek w całości popełnionym w Bashu. Czyli zapomnijmy o konieczności kompilacji, spełniania zależności, oczekiwania na paczkę, itp. Skrypt pobieramy, wrzucamy do katalogu /usr/bin, nadajemy mu stosowne prawa (do uruchamiania) i możemy oddać się konfiguracji tego, co i jak chcemy chronić. CYA jest na tyle sprytny, że odnajdzie się niemal w dowolnym systemie plików – EXT2/3/4, XFS, UFS, GPFS, reiserFS, JFS, BtrFS, ZFS.

Program wykorzystuje dobrze znane polecenie rsync. Potrafi tworzyć snapshoty naszego systemu jak też wskazanych katalogów z danymi użytkownika. Proces odzyskiwania sprowadza się do uruchomienia komputera z LiveCD (najlepiej aby była to dystrybucja w wersji której używamy na co dzień) i odpalenia skryptu recovery.sh. Skrypt ten tworzymy za pomocą CYA i zapisujemy w dogodnym dla nas miejscu. Ot i cała filozofia. Po doprecyzowaniu o jakie lokalizacje chcemy się troszczyć, wrzucamy skrypt w CRON i zapominamy na długie miesiące. Ale wcześniej wspomniany skrypt:

$ cya script

Jak widzimy, program żywiołowo reaguje na wydawane mu komendy.

Kopie systemu

Standardowo CYA wykonuje do trzech nadpisujących się migawek naszego systemu.

$ cya save

☀ Cover Your Ass(ets) v2.2 ☀

ACTION ⯮ Standard Backup

Checking sudo permissions...
[sudo] password for dhor: 
We need to create /home/cya/points/1 ... done
Backing up /bin/ ... complete
Backing up /boot/ ... complete
Backing up /etc/ ... complete
.
.
.
Backing up /lib/ ... complete
Backing up /lib64/ ... complete
Backing up /opt/ ... complete
Backing up /root/ ... complete
Backing up /sbin/ ... complete
Backing up /snap/ ... complete
Backing up /usr/ ... complete
Backing up /initrd.img ... complete
Backing up /initrd.img.old ... complete
Backing up /vmlinuz ... complete
Backing up /vmlinuz.old ... complete
Write out date file ... complete
Update rotation file ... complete

‣ Disclaimer: CYA offers zero guarantees as improper usage can cause undesired results
‣ Notice: Proper usage can correct unauthorized changes to system from attacks

Migawka trafi do /home/cya/points/. Aby stworzyć migawkę która nie zostanie nadpisana:

$ cya keep name NASZA_NAZWA

Dodając do powyższego polecenia overwrite wymusimy nadpisanie istniejącej kopii. Możemy też stworzyć skompresowane archiwum – dopisując archive. Oczywiście nie jesteśmy uwiązani do domyślnych lokalizacji dla kopii systemu – wszystko można ustawić edytując /home/cya/cya.conf.

Nasze dane

Aby wykonać kopię naszych danych wymagana będzie ingerencja w powyższym pliku *.conf. Należy dopisać tam linijkę określającą który katalog chcemy zachować i gdzie:

MYDATA_mojedokumenty=”/home/dhor/Dokumenty/ /home/cya/backup/mojedokumenty/”

I teraz czas na CYA:

$ cya mydata mojedokumenty

Możemy stworzyć konfigurację dla dowolnej liczby lokalizacji. Musimy tylko pamiętać, aby każda miała inny opis (po MYDATA_).

Chcemy wykluczyć któryś katalog? Proszę bardzo (cya.conf):

EXCLUDE_/var/=”tmp/ logs/”

Prawda, że wygląda to przystępnie? Oczywiście zwykły Kowalski żachnie się na takie rozwiązanie, ale niezależni organizatorzy środowiska dla swojego komputera… Kto wie.

I pamiętajmy, to nadal czysty Bash.