Dlouho jsem se potýkal s problémem zálohování svého linuxového stroje. Prošel jsem si spoustu
nástrojů na zálohování, ale u většiny jsem vždy narazil na zásadní problémy - buďto byly
příliš primitivní (neumožňovali excludovat složky, inkrementální zálohy, šifrování, komprese), nebo se jednalo o
komplexní enterprise nástroje (vyžadovali vlastní SQL databázi, složitou konfiguraci, agenta, server atd... což je pro jeden počítač trošku moc).
Proto jsem uvažoval na to jak to řešit, nejdříve jsem chtěl napsat vlastní aplikaci v Pythonu, která bude dělat inkrementální ZIP soubory, řešit šifrování, mít vlastní databázi v SQLite apod., ale nebyl na to čas a i tak mi dané řešení přišlo příliš složité.
Postupem času jsem
našel relativně jednoduché a funkční řešení. Používám
dm-crypt, btrfs a rsync. Přes dmcrypt vytvořím šifrovaný container, v btrfs zapnu kompresi a přes snapshoty udělám inkrementální zálohy tím, že do nového snapshotu nakopíruji RSyncem změny.
Co jsem si s tím tak hrál, tak výsledky jsou velmi dobré. Všechno vyžadovalo
skript o 20ti řádkách, software není potřeba žádný (obnova je tedy jednoduchá), žádná databáze a inkrementální zálohování je opravdu velmi, velmi rychlé (na 1TB disku, kde je 600GB dat například
při změně 1GB proběhne inkrementální záloha na usb disk do minuty).
Celé své dílo jsem pod GNU/GPL v3 zveřejnil na
https://github.com/koss822/miscUvažuji o následujících věcech:
- Jak zajistit retention (dochází místo na usb disku, jak to detekovat a promazat starší zálohy)
- Jak vylepšit dokumentaci a vysvětlení (chtěl bych, aby to používalo více lidí, protože vím, že to dost lidí poměrně řeší)
- Nějaké nápady na rozšíření vylepšení?
Řekl bych, že dané řešení je poměrně dost elegantní, rychlé, přehledné a nabízí i možnosti jako například použití šifrovacího klíče z disku (takže není třeba zadávat heslo).
Kdyby někoho trápilo to samé, a
chtěli byste to například otestovat, dát mi feedback atd., ocenil bych to... Nerad si dělám věci do šuplíku a danou utilitu už 2 měsíce ke své spokojenosti používám...