Restic – gyors, biztonságos és hatékony biztonsági mentési alkalmazás

Linux scriptek
Linux scriptek

A Restic egy ingyenes, gyors, nyílt forráskódú, biztonságos biztonsági mentési program. Go programozási nyelven írták, ami kényelmes számunkra, ha a Linux disztribúciónk nem tartalmazza alapból ezt a mentő programot. Restic egy erős, az AES-256-tal titkosítja az adatokat, és a Poly1305-AES segítségével hitelesíti. Ha érdekel, hogy ez mi, olvass utána, nekünk jelenleg csak annyit kell tudni, hogy ez megfelel a mi elvárásainknak. Azaz egy egyszerű felhasználó nem fogja feltörni ezt a titkosítást. Az adatok biztonsági mentése és visszaállítása a Restic segítségével nagyon gyors és egyszerű. Bár viszonylag sok mentő, titkosító program van, érdemes ezt is kipróbálni. Igaz CLI, azaz parancssoros, de két-három parancs kijegyzetelésével már jól el tudunk boldogulni. Sok egyéb lehetőségeket is nyújt, de én „csak” azt mutatom be, amit használok: helyi adatmentést. Bár nem fogom lecserélni az adatok mentésére használt programomat, de adatok mozgatására két gép közt ezt használjuk majd.

Restic Linuxos titkosított adatmentő telepítése:

Arch alapú Linuxra:
sudo pacman -S restic
Az AUR-ból:
yay -S restic-git
Debian, Ubuntu, Linux Mint Linux:
sudo apt-get install restic
NixOS rendszerhez:
nix-env --install restic
OpenSuse Linuxhoz:
sudo zypper install restic
Ha nem találod a saját tárolódban, akkor Go segítségével telepítheted. Ha nincs fenn a go, akkor azt előbb fel kell tenni.
git clone https://github.com/restic/restic
Be kell lépni a letöltési könyvtárba:
cd restic
Majd telepíteni:
go run build.go
Ennyi. Ha esetleg még nem telepítettél ilyen programot, akkor kezd ezzel. Gyakorlat teszi a mestert!

Első lépés az adatmentő programmal:

Első lépésben indítsuk el terminálból, és olvassuk el a főbb lehetőségeket. Bár mi valóban csak egy gyors mentés/titkosítás műveletet hajtunk végre, de ennél sokkal többet tud! Pár alapvető lépést érdemes megjegyezni, felírni, vagy ha erre szükséged van akár scriptesítheted is a témát.

Először hozzunk létre egy tárolót a biztonsági mentés tárolására. Most egy biztonsági másolatot tartalmazó lerakatot a HOME könyvtáramban.

restic init --repo ~/backup

Kiírja, hogy „enter password for new repository” azaz adj meg egy jelszót. Majd meg is kell erősíteni: „enter password again:”. Ami nagyon fontos, hogy egyezzen a két jelszó! Majd „created restic repository 0805e95086 at /home/laci/backup” kiírásával jelzi, hogy elkészült. A mentési pillanatkép azonosítója az a szám, amit kiírt.

Ezt követi egy figyelmeztetés, ami értelemszerűen felhíja a figyelmedet, hogy a jelszót jegyezd meg, mert ha nem… Ezt vedd komolyan, mert jelszó nélkül boldog tulajdonosa leszel egy titkosított, mentett anyagnak, amivel semmit sem tudsz tudni kezdeni! Ez nem olyan, mint egy törlés, amit kisebb-nagyobb eséllyel vissza tudsz hozni, ha a jelszavadat elfelejted, itt nem lehet újat kérni!

Ezt a mentés/titkosítás követi. Ez nem különbözik a legtöbb mentő programtól,, vagy egy sima másolástól. Egyszerű mit mentsen hova felépítést követ.

restic -r ~/backup backup ~/Teszt

Én a Teszt mappámat mentettem ezzel, az előbb létrehozott helyre. Jelszó, és elindul a mentés. Ez hosszabb ideig is eltarthat, ha sok fájlt és nagy adatmennyiséget mentesz. Ne feledd! Nem csak másolsz, titkosítasz is.

repository 0805e950 opened successfully, password is correct
created new cache in /home/laci/.cache/restic

Files: 4 new, 0 changed, 0 unmodified
Dirs: 2 new, 0 changed, 0 unmodified
Added to the repo: 238.271 KiB

processed 4 files, 237.180 KiB in 0:00
snapshot 6f504678 saved

A 6f504678 a neve a jelenlegi pillanatfelvételnek, a mentésnek. Ha újra futtatnánk a fenti parancsot, a restic újabb pillanatfelvételt készít egy másik egyedi névvel, és ezúttal elég gyorsabban készít biztonsági másolatot, mint az elsőnél. Folytathatjuk a munkát a /Teszt mappában, és annyiszor futtathatjuk a biztonsági másolatot, ahányszor kell. Érdemes ciklikusan lefuttatni!

A folyamatosan készített mentéseteket össze is hasonlíthatjuk. Itt a kapcsoló neve a diff, ami amúgy is ismerős, hiszen van ilyen fájl stb. összehasonlító parancs.

restic -r ~/backup diff 0a1fa99b 6f504678

Kimenete:

comparing snapshot 6f504678 to 0a1fa99b:

+ /home/laci/Teszt/0111388.zip

Files: 1 new, 0 removed, 0 changed
Dirs: 0 new, 0 removed
Others: 0 new, 0 removed
Data Blobs: 1 new, 0 removed
Tree Blobs: 3 new, 3 removed
Added: 28.564 KiB
Removed: 2.192 KiB

Azaz látható, hogy hozzáadtam egy zip fájlt a két mentés közt a /Teszt könyvtárhoz.

Nem, nem kell felírni a mentések azonosítóját, sem memorizálni. Le lehet kérdezni.

restic -r ~/backup snapshots

Repository 0805e950 opened successfully, password is correct
ID Time Host Tags Paths
———————————————————————–
6f504678 2020-03-18 13:20:32 laci-pc /home/laci/Teszt
0a1fa99b 2020-03-18 13:37:06 laci-pc /home/laci/Teszt
———————————————————————–
2 snapshots

Sok magyarázatot nem követel a kiírás.

Egyes fájlok mentése, vagy egyes fájlok kizárása sem idegen a restic-től, a megszokott módon kezelheted ezeket.

restic -r ~/backup backup ~/Teszt/titkos.txt

Egy fájlt menthetsz, ha csak annyi kell.

restic -r ~/backup backup --exclude=*.zip ~/Teszt

A példába a zip fájlokat kizárom, de ennél bonyolultabb kizárásokat is összeírhatsz. Bár én azt követem, hogy a mentendő fájlokat bemásolom egy könyvtárba, és az egészet mentem, mert így a legegyszerűbb…
Ha nem ezt követed, és sok kizárandó fájlt, könyvtárt (pld. a teljes HOME mappát mented, és egyes alkönyvtárakat nem akarod) akkor hozz létre egy sima szövegfájlt (pld. nemkell), és abba sorold fel azt ami nem kell.

restic -r ~/backup backup --exclude-file=nemkell ~/Teszt

A visszaállítás a restore kapcsolóval megy, azaz 6f504678 számú mentést ha vissza akarom rakni, akkor:

restic -r ~/backup restore 6f50467 --target ~/IdeTedd

Azért adtam meg másik könyvtárat, hogy lásd nem kötelező ugyanoda visszaállítani. Párszor jól jöhet ez.

A kimenete:

repository 0805e950 opened successfully, password is correct
restoring <Snapshot 6f504678 of [/home/laci/Teszt] at 2020-03-18 13:20:32.048409835 +0100 CET by laci@laci-pc> to /home/laci/IdeTedd

Ami picit furcsa nekem, hogyha nem az eredeti helyre rakom vissza, akkor egy ilyen struktúrát hoz létre: /home/laci/IdeTedd/home/laci/Teszt. Ne lepődj meg!

Bár nem használom, de érdemes tudni: nem csak menteni tud egy egyedi fájlt, hanem a mentésből vissza is tudsz egy fájlt állítani:

restic -r ~/backup restore b52d462b --target ~/IdeTedd ezkell.txt

Ha csak ennyit tudna, nem lenne nagy értelme a dolognak. Egy több éves mentésnél biztosan nem emlékszem majd a fájl nevére, amit vissza kellene állítani. Így van lehetőség a mentési könyvtár felcsatolására is egy mappába. Előbb hozz létre egy üres mappát (mkdir mappaneve), majd „csatold” fel a ~/backup könyvtárat.

restic -r ~/backup mount mappaneve/

A per jelet a végéről ne feledd le!
Majd ebben a mappában találod meg a mentéseket. Próbáld ki, nagyon kényelmesen, mint egy sima mappában kereshetsz a kedvenc fájlkezelőddel. Ez egy írásvédett mappa lesz, nem tudsz írni bele.
Amire figyelni kell – bár sejthető – ez nem titkosított mappa, azaz ha végeztél a nézelődéssel, vagy a kimásolással (igen, simán ki is másolhatsz!), akkor le kell csatolni a mappát, amit abban a terminálban tehetsz meg, amiben felcsatoltad, és ahogy írja is: When finished, quit with Ctrl-c or umount the mountpoint. Azaz nyomj egy Ctrl-c!

Amit ne tegyél semmiképp, mert nem biztonságos: felcsatolod a ~/backup mentési könyvtárat a mappaneve/ mappába és becsukod a terminált! Jobb a korrekt munka, és a a biztonság.

Ha nem kell egy mentés, akkor

restic -r ~/backup forget 6eda7c7d

Előbb kilistázod a pillanatképeket, ha fejből nem tudod a számát, majd a törölhető pillanatkép számát megadod. Ezután érdemes újra kilistázni a pillanatképeket, és megnézni, valóban az adott számú pillanatkép eltűnt! Azonban az adatok, amelyekre a pillanatkép hivatkozik, továbbra is a tárházban vannak! Így eztán

restic -r ~/backup prune

parancsot kell futtatni.

Igen, első látásra macerásabb, mint egy grafikus felületű, és bosszantó lehet, hogy mindenhez meg kell adni a jelszót. Ami csak első látásra macerás, mert egy nap alatt meg lehet szeretni: egy scripttel megoldható, hogy az megfelelő könyvtárat mentse, titkosítsa. A jelszót pedig jó, ha sokszor beírod, mert ha elfelejted, akkor ennek a mentésnek nem sok hasznát veszed!

Én csak a legfontosabb részt (ment, visszaállít, keres) érintettem. Nem tértem ki az egyéb, hálózati, felhő stb. témára, és arra sem, hogy miért érdemes egyéb okok miatt is ezt használni, milyen előnyei vannak.
A teljes dokumentáció itt található. A weblapjukat is nézd meg.  A GitHub oldal.

Itt jegyzem meg, hogy ha bármelyik cikkemmel, videómmal kapcsolatban építő jellegű gondolatod van, azt oszd meg velem. Vagy a linuxvideok/ide tudod mi jön/protonmail/ide is/com címre, vagy a https://discord.gg/7DdbM9g discord csatornán elérsz.

A programot 2020. márciusában próbáltam ki. A bejegyzés ötletét egy ostechnix cikk adta.

Related Posts