Po roce vývoje je představeno vydání zálohovacího systému restic 0.13, který poskytuje nástroje pro ukládání záložních kopií do verzovaného úložiště, které lze hostovat na externích serverech a v cloudovém úložišti. Data jsou uložena v zašifrované podobě. Můžete definovat flexibilní pravidla pro zahrnutí a vyloučení souborů a adresářů při vytváření zálohy. Podporuje práci na Linuxu, macOS, Windows, FreeBSD a OpenBSD. Kód projektu je napsán v Go a distribuován pod licencí BSD.
Základní možnosti:
- Podpora ukládání záloh v lokálním souborovém systému, na externím serveru s přístupem přes SFTP/SSH nebo HTTP REST, v cloudech Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage a Google Cloud Storage a také v jakémkoliv úložišti pro které existují backendy rclone. K uspořádání úložiště lze také použít speciální odpočinkový server, který poskytuje vyšší výkon ve srovnání s jinými backendy a může pracovat v režimu pouze připojení, což vám nedovolí mazat nebo měnit zálohy, pokud je zdrojový server a přístup k šifrovacím klíčům kompromitován.
- Podpora pro definování flexibilních pravidel pro vyloučení souborů a adresářů při vytváření záloh (například pro vyloučení protokolů, dočasných souborů a snadno reprodukovatelných dat ze záloh). Formát ignorovacích pravidel je známý a podobá se rsync nebo gitignore.
- Snadná instalace, použití a obnovení informací. Pro práci se zálohami stačí zkopírovat jeden spustitelný soubor, který lze použít bez dalšího nastavování. Pro samotný spustitelný soubor je k dispozici opakovatelné sestavení, které vám umožní sami ověřit, že binární sestavení je vytvořeno z poskytnutého zdrojového kódu.
- Jsou podporovány snímky, které odrážejí stav konkrétního adresáře se všemi soubory a podadresáři v určitém okamžiku. Pokaždé, když je vytvořena nová záloha, je vytvořen související snímek, který vám umožní obnovit stav v daném okamžiku. Je možné kopírovat snímky mezi různými repozitáři.
- Pro úsporu provozu se během procesu zálohování zkopírují pouze změněná data. Aby bylo zajištěno efektivní ukládání, data v úložišti nejsou duplikována a další snímky pokrývají pouze změněná data. Systém nemanipuluje s celými soubory, ale s bloky s plovoucí velikostí vybranými pomocí Rabinova podpisu. Informace se ukládají ve vztahu k obsahu, nikoli k názvům souborů (názvy a objekty související s daty jsou definovány na úrovni metadat bloku). Na základě hash SHA-256 obsahu se provádí deduplikace a eliminuje se zbytečné kopírování dat.
- Pro vizuální posouzení obsahu úložiště a zjednodušení obnovy lze připojit snímek se záložní kopií ve formě virtuálního oddílu (připojení se provádí pomocí FUSE). K dispozici jsou také příkazy pro analýzu změn a selektivní extrahování souborů.
- Informace na externích serverech jsou uloženy v zašifrované podobě (pro kontrolní součty se používá SHA-256, pro šifrování se používá AES-256-CTR a pro zaručení integrity se používají ověřovací kódy založené na Poly1305-AES). Systém byl původně navržen tak, aby zajistil, že záložní kopie budou uloženy v nedůvěryhodném prostředí a že pokud se záložní kopie dostane do nesprávných rukou, neměla by kompromitovat systém. Šifrování lze zajistit pomocí přístupových klíčů i hesel.
- Záložní kopii je možné ověřit pomocí kontrolních součtů a ověřovacích kódů, aby se potvrdilo, že integrita souborů není narušena a potřebné soubory lze obnovit a nezahrnují skryté úpravy.
V nové verzi:
- Přidána podpora vzorů negativního vyloučení. Například "--exclude '/home/user/*' --exclude '!/home/user/.config'" pro vyloučení veškerého obsahu /home/user kromě adresáře /home/user/.config.
- K příkazu „backup“ byl přidán režim „--dry-run“, který vám při spuštění s volbou „--verbose“ umožňuje sledovat, které soubory budou zahrnuty do zálohy, aniž byste ve skutečnosti provedli jakékoli změny.
- Do různých backendů úložiště byla přidána podpora kontrolních součtů pro dodatečné ověření stažených dat.
- Příkaz „restore“ byl optimalizován, takže funguje dvakrát rychleji. Vylepšen byl také výkon příkazu „kopírovat“.
Zdroj: opennet.ru