AES-256 šifrování
Duplicati klade mimořádný důraz na bezpečnost zálohovaných dat. Veškerá data jsou ve výchozím nastavení šifrována pomocí AES-256 (Advanced Encryption Standard s 256bitovým klíčem), což je stejný šifrovací standard používaný vládními a vojenskými organizacemi po celém světě.
Jak šifrování v Duplicati funguje
Šifrování probíhá na straně klienta (na vašem počítači) před odesláním dat do úložiště. To znamená, že poskytovatel cloudového úložiště nikdy nevidí vaše data v nezašifrované podobě — i kdyby byl kompromitován, vaše zálohy zůstanou chráněny.
- Šifrovací klíč — odvozen z hesla, které zadáte při konfiguraci zálohy. Duplicati používá PBKDF2 (Password-Based Key Derivation Function 2) pro odvození šifrovacího klíče z hesla.
- AES-256-CBC — výchozí šifrovací režim s inicializačním vektorem (IV) pro každý blok dat.
- GPG podpora — alternativně lze použít GNU Privacy Guard (GPG) pro šifrování, což umožňuje asymetrické šifrování s veřejným/privátním klíčem.
- Volitelné šifrování — šifrování lze vypnout, pokud důvěřujete cílovému úložišti (například lokální NAS v zabezpečené síti).
Block-level deduplikace
Duplicati 2.x implementuje sofistikovanou deduplikaci na úrovni datových bloků, která výrazně snižuje objem uložených a přenesených dat:
Princip fungování
- Chunking — každý soubor je rozdělen na bloky o konfigurované velikosti (výchozí 100 KB). Duplicati používá fixní velikost bloku, ne content-defined chunking jako některé alternativy.
- Hashing — pro každý blok se vypočítá SHA-256 hash, který slouží jako unikátní identifikátor bloku.
- Porovnání — hash nového bloku se porovná s hashy již uložených bloků. Pokud se shoduje, blok se neukládá znovu — pouze se vytvoří odkaz.
- Ukládání — pouze nové, dosud neviděné bloky jsou šifrovány a nahrány do úložiště.
Výhody deduplikace
- Úspora místa — duplicitní data (stejné soubory ve více složkách, mírně upravené dokumenty) jsou uložena pouze jednou.
- Rychlé inkrementální zálohy — přenášeny jsou pouze nové nebo změněné bloky, typicky malé procento celkového objemu dat.
- Nezávislé body obnovy — každý bod obnovy se chová jako plná záloha, i když fyzicky sdílí bloky s předchozími verzemi.
Inkrementální zálohy
Duplicati provádí po úvodním zálohovacím běhu výhradně inkrementální zálohy na úrovni bloků. To znamená, že:
- Není nutné provádět periodické plné zálohy (jako u tradičních nástrojů)
- Každý zálohovací běh přenáší pouze změněná data
- Přesto lze obnovit jakýkoli bod v čase jako kompletní zálohu
- Zálohovací běhy jsou typicky velmi rychlé (minuty místo hodin)
Na rozdíl od tradičního modelu „plná + inkrementální + diferenční" Duplicati netrpí problémem rostoucích řetězců inkrementálních záloh. Díky block-level deduplikaci jsou všechny body obnovy rovnocenné.
Webové uživatelské rozhraní
Duplicati 2.x je ovládáno prostřednictvím webového rozhraní (Web UI), které je přístupné z jakéhokoli prohlížeče na adrese http://localhost:8200 (výchozí port). Webové rozhraní umožňuje:
- Vytváření a správu zálohovacích úloh — intuitivní průvodce pro konfiguraci nových záloh
- Procházení a obnovu souborů — průzkumník souborů pro výběr souborů k obnově z libovolného bodu v čase
- Monitorování běžících úloh — přehled o průběhu zálohovacích a obnovovacích operací
- Prohlížení logů — detailní záznamy o všech operacích
- Konfiguraci nastavení — globální nastavení aplikace, porty, autentizace
- Vzdálený přístup — s odpovídající konfigurací lze web UI zpřístupnit ze sítě pro vzdálenou správu
Příkazová řádka (CLI)
Pro pokročilé uživatele a automatizaci nabízí Duplicati plnohodnotné rozhraní příkazové řádky:
# Vytvoření zálohy
duplicati-cli backup "s3://mybucket/backup" "/home/data" \
--passphrase="MySecretPassword" \
--s3-server-name="s3.amazonaws.com" \
--aws-access-key-id="AKIAXXXXXXXX" \
--aws-secret-access-key="secret"
# Obnova souborů
duplicati-cli restore "s3://mybucket/backup" \
--passphrase="MySecretPassword" \
--restore-path="/home/restore"
# Výpis obsahu zálohy
duplicati-cli list "s3://mybucket/backup" \
--passphrase="MySecretPassword"
# Verifikace zálohy
duplicati-cli test "s3://mybucket/backup" all \
--passphrase="MySecretPassword"
# Oprava databáze
duplicati-cli repair "s3://mybucket/backup" \
--passphrase="MySecretPassword"
Plánování (Scheduler)
Duplicati obsahuje vestavěný plánovač, který umožňuje automatické spouštění záloh v definovaných intervalech:
- Periodické — každou hodinu, denně, týdně nebo v uživatelsky definovaném intervalu
- Přesný čas — konkrétní den a čas spuštění
- Přeskočení — pokud je záloha již v běhu, další plánované spuštění se přeskočí
- Opakování při selhání — automatické opakování po selhání zálohy
Na Linuxu lze zálohy alternativně spouštět přes cron a na Windows přes Task Scheduler, pokud preferujete systémové plánovací nástroje.
E-mailové notifikace
Duplicati může odesílat e-mailové notifikace po dokončení zálohovacích operací. Konfigurace podporuje:
- SMTP server s TLS/SSL šifrováním
- Různé úrovně notifikací — pouze chyby, varování, nebo vždy
- Vlastní šablony zpráv
- Přiložení logu k e-mailu
Bandwidth Throttling
Pro uživatele s omezenou šířkou pásma nabízí Duplicati možnost omezení rychlosti nahrávání a stahování:
- Nastavení maximální upload rychlosti (např. 5 MB/s)
- Nastavení maximální download rychlosti
- Časově závislé limity (vyšší rychlost v noci, nižší přes den)
- Konfigurace přes Web UI nebo CLI parametry
Verifikace záloh
Duplicati nabízí několik mechanismů pro ověření integrity záloh:
Automatická verifikace
Po každém zálohovacím běhu Duplicati automaticky ověří integritu nově vytvořených souborů porovnáním hashů.
Manuální test (Test/Verify)
Příkaz test stáhne a ověří náhodný vzorek zálohovacích souborů z úložiště, porovná hashe bloků a ověří, že data lze úspěšně dešifrovat. Tento test je možné spouštět periodicky pro průběžné ověřování.
Compact operace
Příkaz compact vyčistí úložiště od bloků, na které se neodkazuje žádný bod obnovy (po expiraci starých záloh). Tím se uvolní místo v úložišti.
Nástroje pro opravu databáze
Duplicati udržuje lokální SQLite databázi, která slouží jako index zálohovacích dat. Pokud dojde k poškození databáze (například výpadek napájení během zálohy), Duplicati nabízí opravné nástroje:
- Repair — rekonstrukce lokální databáze ze souborů v úložišti. Toto je klíčová funkce, protože umožňuje obnovit zálohy i na jiném počítači, než na kterém byly vytvořeny.
- Vacuum — optimalizace SQLite databáze pro zlepšení výkonu.
- Delete — bezpečné smazání vybraných verzí záloh z úložiště.
- Purge — smazání konkrétních souborů ze všech verzí záloh.
Retenční politiky
Duplicati nabízí flexibilní systém retenčních politik pro automatickou správu starých záloh:
- Počet verzí — uchovat posledních N verzí (např. posledních 10 záloh)
- Časové okno — uchovat zálohy za posledních N dní/týdnů/měsíců
- Chytré pravidlo — kombinace: uchovat všechny zálohy za posledních 7 dní, 1 zálohu za každý týden za poslední 4 týdny, 1 zálohu za měsíc za poslední rok
- Neomezené — nikdy nemazat staré verze (pozor na rostoucí objem úložiště)
Filtry a vyloučení
Duplicati poskytuje pokročilý systém filtrů pro přesný výběr, které soubory a složky zálohovat:
Typy filtrů
- Glob patterns —
*.tmp,*.log,node_modules/ - Regulární výrazy — plná podpora regex pro komplexní pravidla
- Atributy souborů — vyloučení skrytých souborů, systémových souborů, symbolických odkazů
- Velikost — vyloučení souborů větších/menších než zadaná hodnota
- Předdefinované skupiny — výchozí filtry pro běžné dočasné soubory OS
# Příklad filtrů v CLI:
--exclude="*.tmp"
--exclude="*.log"
--exclude="*/node_modules/"
--exclude="*/\.cache/"
--exclude-files-larger-than="1GB"
--exclude-expression="[.*\\.(tmp|bak|swp)]"
filter.txt) a načtěte ho pomocí --include-filelist=filter.txt. To je přehlednější než zadávání mnoha filtrů na příkazové řádce a usnadňuje správu filtrů pro více zálohovacích úloh.
REST API
Duplicati web server nabízí REST API, které umožňuje programatický přístup ke všem funkcím:
- Vytváření, spouštění a zastavování zálohovacích úloh
- Dotazování na stav běžících operací
- Export a import konfigurace
- Integrace s monitorovacími nástroji (Nagios, Zabbix, Prometheus)
API je dokumentováno a používá JSON formát pro komunikaci. Autentizace probíhá pomocí hesla nastaveného pro web UI.
Export a import konfigurace
Zálohovací úlohy lze exportovat jako JSON soubory a importovat na jiném počítači. To umožňuje:
- Přenos konfigurace mezi stroji
- Verzování konfigurace v git
- Šablony pro opakované nasazení
- Zálohu samotné konfigurace Duplicati