Zpět do LockBoxu

Dokumentace LockBox CLI

LockBox CLI je anglická verze pro automatizaci určená pro skriptované šifrování, extrakci, aktivaci, plánované šifrované zálohy a CI/CD pracovní postupy. Používá stejný model licence navázané na zařízení jako desktopová aplikace.

Rychlý start

Umístěte LockBox.Cli.exe do složky zahrnuté v PATH, nebo jej spusťte pomocí úplné cesty. Značka --cli je přijímána pro kompatibilitu , ale ve verzi pouze pro CLI není vyžadována.

.\LockBox.Cli.exe --help
.\LockBox.Cli.exe device-id
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen --count 3

Minimální postup vytvoření a otevření:

$env:LBX_MASTER = "use-a-long-master-password"
$env:LBX_L1 = "layer-1-key"

.\LockBox.Cli.exe create `
  --source "D:\Data" `
  --output "E:\Backups\data.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-128-GCM=LBX_L1

.\LockBox.Cli.exe open `
  --container "E:\Backups\data.lbx" `
  --output "D:\Restore" `
  --master-env LBX_MASTER `
  --key-env LBX_L1

Linux používá stejné příkazy s cestami oddělenými lomítkem a binární soubor bez přípony .exe:

chmod +x ./LockBox.Cli
./LockBox.Cli --help
./LockBox.Cli device-id
./LockBox.Cli create \
  --source "/srv/data" \
  --output "/backup/data.lbx" \
  --master-env LBX_MASTER \
  --layer-env AES-128-GCM=LBX_L1

Instalace a kontrola CLI

Rozbalte ZIP pro svůj systém a procesor. .NET je součástí balíčku. Porovnejte hash se SHA256SUMS.txt. Umístěte CLI na níže uvedenou absolutní cestu a ověřte nápovědu i licenci pod účtem pro zálohování.

Linux potřebuje také nativní knihovny distribuce včetně ICU a OpenSSL; přibalený .NET je nedodává. Ve Windows musí platné zásady spouštění povolovat skripty PowerShell.

.NET / Linux · PowerShell / ExecutionPolicy

Expand-Archive -LiteralPath '.\LockBox-Cli-win-x64.zip' -DestinationPath 'C:\Tools\LockBox'
& 'C:\Tools\LockBox\LockBox.Cli.exe' --help
& 'C:\Tools\LockBox\LockBox.Cli.exe' license
Get-FileHash -LiteralPath '.\LockBox-Cli-win-x64.zip' -Algorithm SHA256
uname -m
unzip LockBox-Cli-linux-x64.zip -d ./lockbox-cli
chmod +x ./lockbox-cli/LockBox.Cli
./lockbox-cli/LockBox.Cli --help
./lockbox-cli/LockBox.Cli license
sha256sum LockBox-Cli-linux-x64.zip

SHA256SUMS.txt

Windows x64   -> LockBox-Cli-win-x64.zip
Windows x86   -> LockBox-Cli-win-x86.zip
Windows ARM64 -> LockBox-Cli-win-arm64.zip
Linux x86_64  -> LockBox-Cli-linux-x64.zip
Linux aarch64 -> LockBox-Cli-linux-arm64.zip
Linux armv7l  -> LockBox-Cli-linux-arm.zip

Složky, cesty a místo

Upravte cesty. Zdrojová složka nesmí být prázdná a kontejner musí být mimo ni. Stejný výstupní název nahradí předchozí kontejner a části. Vyhraďte dočasné místo vedle kontejneru a kopii zdroje pro plánované úlohy. Jednotky používají základ 1024; výplň přidává bajty.

C:\Tools\LockBox\LockBox.Cli.exe     /opt/lockbox/LockBox.Cli
C:\LockBox\secrets\master.txt       /srv/lockbox/secrets/master.txt
C:\LockBox\secrets\layer1.txt       /srv/lockbox/secrets/layer1.txt
C:\LockBox\backup.ps1               /srv/lockbox/backup.sh
D:\Data\report.csv                 /srv/data/report.csv
E:\Backups\20260910-020000\data.lbx  /backup/20260910-020000/data.lbx
D:\Restore\Data\report.csv         /restore/data/report.csv
& 'C:\Tools\LockBox\LockBox.Cli.exe' create --source 'D:\Data' --output 'E:\Backups\data.lbx' --master-file 'C:\LockBox\secrets\master.txt' --layer-file 'AES-128-GCM=C:\LockBox\secrets\layer1.txt'
/opt/lockbox/LockBox.Cli create --source /srv/data --output /backup/data.lbx --master-file /srv/lockbox/secrets/master.txt --layer-file AES-128-GCM=/srv/lockbox/secrets/layer1.txt

Příprava souborů s tajnými údaji

Tajné údaje vygenerujte jednou, bezpečně zálohujte a omezte přístup k souborům. Příklady odmítnou nahradit existující klíče. Soubory UTF-8 zachovávají mezery, koncové odřádkování se odstraní. Pro starší zálohy uchovejte původní klíče.

$ErrorActionPreference = 'Stop'
$cli = 'C:\Tools\LockBox\LockBox.Cli.exe'
$secretDir = 'C:\LockBox\secrets'
New-Item -ItemType Directory -Force -Path $secretDir | Out-Null
$files = @('master.txt', 'layer1.txt')
foreach ($name in $files) {
    if (Test-Path -LiteralPath (Join-Path $secretDir $name)) {
        throw "Secret already exists: $name"
    }
}
foreach ($name in $files) {
    $key = & $cli keygen --count 1
    if ($LASTEXITCODE -ne 0) { throw 'Key generation failed' }
    [IO.File]::WriteAllText((Join-Path $secretDir $name), [string]$key, [Text.UTF8Encoding]::new($false))
}
set -eu
umask 077
mkdir -p /srv/lockbox/secrets
test ! -e /srv/lockbox/secrets/master.txt
test ! -e /srv/lockbox/secrets/layer1.txt
set -C
/opt/lockbox/LockBox.Cli keygen --count 1 > /srv/lockbox/secrets/master.txt
/opt/lockbox/LockBox.Cli keygen --count 1 > /srv/lockbox/secrets/layer1.txt

Aktivace a stav licence

Licenční klíč je vázán na ID zařízení, které vytiskne stejná verze CLI. Pokud je licence zkopírována na jiný počítač, LockBox ji odmítne a přepne se na Free.

Windows kontroluje existující umístění aplikačních dat LockBoxu. Linux ukládá aktivaci do $XDG_CONFIG_HOME/lockbox/.lockbox.license, poté ~/.config/lockbox/.lockbox.license, s ~/.lockbox/.lockbox.license jako záložní možnost.

Získat ID zařízení

.\LockBox.Cli.exe device-id

Zkontrolovat aktuální edici

.\LockBox.Cli.exe license

Aktivace ze souboru s licencí

.\LockBox.Cli.exe activate --license-file "C:\Licenses\lockbox-license.txt"

Aktivace pomocí proměnné prostředí

$env:LBX_LICENSE = "LBX-LIC-..."
.\LockBox.Cli.exe activate --license-env LBX_LICENSE

Inline aktivace

Inline aktivace funguje, ale může být zaznamenána do historie shellu nebo protokolů procesů.

.\LockBox.Cli.exe activate --license "LBX-LIC-..."

Aktivace v Linuxu

export LBX_LICENSE="LBX-LIC-..."
./LockBox.Cli activate --license-env LBX_LICENSE
./LockBox.Cli license

Zacházení s tajemstvími

Upřednostňujte proměnné prostředí nebo soubory. Inline tajemství jsou užitečná pouze pro testování. Hlavní hesla a klíče vrstev musí být uchovány: bez nich nelze kontejner otevřít.

ÚčelPřímoProstředíSoubor
Hlavní heslo--master value--master-env ENV--master-file path
Vytvořit klíč vrstvy--layer ALG=KEY--layer-env ALG=ENV--layer-file ALG=FILE
Otevřít klíč vrstvy--key value--key-env ENV--key-file path
Heslo pro soubor plánovače--password value--password-env ENV--password-file path
Heslo pro zničení kontejneru--destruction-password value--destruction-password-env ENV--destruction-password-file path
Licenční klíč--license value--license-env ENV--license-file path

Tajemství založená na souborech

Set-Content -Path ".\master.txt" -Value "master-password" -Encoding UTF8
Set-Content -Path ".\layer1.txt" -Value "layer-key-1" -Encoding UTF8

.\LockBox.Cli.exe create `
  -s "D:\Data" `
  -o "E:\Backups\data.lbx" `
  --master-file ".\master.txt" `
  --layer-file AES-128-GCM=.\layer1.txt

Algoritmy a generování klíčů

Použijte algorithms k zobrazení všech podporovaných profilů a minimálních edic. Použijte keygen pro klíče vrstev.

.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen
.\LockBox.Cli.exe keygen --count 9
.\LockBox.Cli.exe generate-keys -n 20

Podporované aliasy příkazů:

algorithms
list-algorithms
profiles

keygen
generate-key
generate-keys

Vytvořit kontejnery

create zabaluje zdrojovou složku, provádí volitelnou kompresi a vycpávání, šifruje obsah jednou nebo více vrstvami a zapisuje .lbx kontejner.

Požadované možnosti

  • --source nebo -s: zdrojová složka.
  • --output nebo -o: výstupní .lbx cesta.
  • --master, --master-env nebo --master-file.
  • Alespoň jedna vrstva: --layer, --layer-env nebo --layer-file.

Minimální AES kontejner

.\LockBox.Cli.exe create `
  -s "D:\Data" `
  -o "E:\Backups\data.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-128-GCM=LBX_L1

Kompresní kontejner

.\LockBox.Cli.exe create `
  --source "D:\Exports" `
  --output "E:\Backups\exports.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --compress

Krypto vycpávání

.\LockBox.Cli.exe create `
  -s "D:\Contracts" `
  -o "E:\Backups\contracts.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --padding 2GB

Rozdělit kontejner na části

.\LockBox.Cli.exe create `
  -s "D:\Media" `
  -o "E:\Backups\media.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --split 700MB

První část uchovává .lbx. Další části používají .lbx1, .lbx2 a tak dále. Uchovávejte všechny části ve stejné složce.

Příklad maximálně devíti vrstev

$env:LBX_MASTER = "use-a-long-master-password"
$env:LBX_L1 = "layer-1-key"
$env:LBX_L2 = "layer-2-key"
$env:LBX_L3 = "layer-3-key"
$env:LBX_L4 = "layer-4-key"
$env:LBX_L5 = "layer-5-key"
$env:LBX_L6 = "layer-6-key"
$env:LBX_L7 = "layer-7-key"
$env:LBX_L8 = "layer-8-key"
$env:LBX_L9 = "layer-9-key"

.\LockBox.Cli.exe create `
  --source "D:\Data" `
  --output "E:\Backups\data-max.lbx" `
  --master-env LBX_MASTER `
  --compress `
  --padding 2GB `
  --split 700MB `
  --layer-env AES-256-GCM=LBX_L1 `
  --layer-env CHACHA20-POLY1305=LBX_L2 `
  --layer-env AES-256-CCM=LBX_L3 `
  --layer-env SERPENT-256-CTR-HMACSHA512=LBX_L4 `
  --layer-env TWOFISH-256-CTR-HMACSHA512=LBX_L5 `
  --layer-env CAMELLIA-256-CTR-HMACSHA512=LBX_L6 `
  --layer-env ARIA-256-CTR-HMACSHA512=LBX_L7 `
  --layer-env AES-256-CBC-HMACSHA512=LBX_L8 `
  --layer-env AES-192-OFB-HMACSHA384=LBX_L9

Alternativní syntaxi algoritmu/klíče

.\LockBox.Cli.exe create `
  -s "D:\Data" `
  -o "E:\Backups\data.lbx" `
  --master-env LBX_MASTER `
  --algorithm AES-128-GCM --key-env LBX_L1 `
  --algorithm AES-128-CTR-HMACSHA256 --key-env LBX_L2

Smazat zdroj po úspěšném ručním vytvoření

.\LockBox.Cli.exe create `
  -s "D:\TempToEncrypt" `
  -o "E:\Backups\temp.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --delete-source

--delete-source smaže zdrojovou složku pouze po úspěšném vytvoření kontejneru. Plánovač má jinou možnost: --delete-source-contents.

Destrukční heslo kontejneru

Max edice může do kontejneru přidat samostatné heslo pro zničení. Pokud je toto heslo později zadáno jako hlavní heslo, LockBox okamžitě přepíše kontejner bez potvrzení. Toto je určeno pro scénáře, kde je vyvíjen nátlak. Uchovávejte jej odděleně od skutečného hlavního hesla.

Příkaz ověřuje volné místo na disku free, zašifruje původní data kontejneru pomocí nového náhodného tajného klíče a AES-256-GCM do dočasného souboru, normalizuje výsledek na přesnou původní velikost, nahradí původní soubor a zapomene náhodný tajný klíč. Pro rozdělené kontejnery se každá část .lbx, .lbx1, .lbx2 ve stejné složce nahradí při zachování původních velikostí částí.

Vytvořit s destrukčním heslem

$env:LBX_MASTER = "real-master-password"
$env:LBX_L1 = "layer-key-1"
$env:LBX_DESTROY = "pressure-password"

.\LockBox.Cli.exe create `
  --source "D:\Data" `
  --output "E:\Backups\data.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --destruction-password-env LBX_DESTROY

Spustit zničení bez klíčů vrstvy

.\LockBox.Cli.exe open `
  --container "E:\Backups\data.lbx" `
  --output "D:\Restore" `
  --master-env LBX_DESTROY

Linux spouštěč

export LBX_DESTROY="pressure-password"
./LockBox.Cli open \
  --container "/backup/data.lbx" \
  --output "/restore" \
  --master-env LBX_DESTROY

Po úspěšném zničení již kontejner není platným souborem LockBox. CLI vrací kód ukončení 0 protože požadovaná akce zničení byla úspěšně dokončena.

Otevřít kontejnery

open extrahuje kontejner do výstupní složky. Pro standardní extrakci musí být klíče vrstev předány ve stejném pořadí, v jakém byly při vytváření použity. Pro pracovní postup s heslem pro zničení je vyžadována pouze cesta ke kontejneru, výstupní cesta a heslo pro zničení jako hlavní heslo.

Otevřít kontejner s jednou vrstvou

.\LockBox.Cli.exe open `
  --container "E:\Backups\data.lbx" `
  --output "D:\Restore" `
  --master-env LBX_MASTER `
  --key-env LBX_L1

Otevřít rozdělený kontejner

.\LockBox.Cli.exe open `
  -c "E:\Backups\data.lbx" `
  -o "D:\Restore" `
  --master-env LBX_MASTER `
  --key-env LBX_L1

Otevřít kontejner s více vrstvami

.\LockBox.Cli.exe open `
  -c "E:\Backups\data-max.lbx" `
  -o "D:\Restore" `
  --master-env LBX_MASTER `
  --key-env LBX_L1 `
  --key-env LBX_L2 `
  --key-env LBX_L3 `
  --key-env LBX_L4 `
  --key-env LBX_L5 `
  --key-env LBX_L6 `
  --key-env LBX_L7 `
  --key-env LBX_L8 `
  --key-env LBX_L9

Aliasy

open
decrypt
extract

Ověření zálohy obnovením

Vytvořte malý testovací report.csv. Rozbalujte do nové složky; uvnitř zůstane název zdrojové složky. Uchovávejte všechny části společně a porovnejte s nezměněným zdrojem. Rozbalení potřebuje zapisovatelné dočasné místo vedle kontejneru. Chraňte i obnovené nešifrované soubory.

$ErrorActionPreference = 'Stop'
$cli = 'C:\Tools\LockBox\LockBox.Cli.exe'
$container = 'E:\Backups\data.lbx'
$restore = Join-Path 'D:\RestoreChecks' ([guid]::NewGuid().ToString('N'))
& $cli open --container $container --output $restore --master-file 'C:\LockBox\secrets\master.txt' --key-file 'C:\LockBox\secrets\layer1.txt'
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
$original = (Get-FileHash -LiteralPath 'D:\Data\report.csv' -Algorithm SHA256).Hash
$restored = (Get-FileHash -LiteralPath (Join-Path $restore 'Data\report.csv') -Algorithm SHA256).Hash
if ($original -ne $restored) { throw 'SHA256 mismatch' }
Write-Output $restore
set -eu
umask 077
mkdir -p /restore
restore=$(mktemp -d /restore/check-XXXXXX)
/opt/lockbox/LockBox.Cli open --container /backup/data.lbx --output "$restore" --master-file /srv/lockbox/secrets/master.txt --key-file /srv/lockbox/secrets/layer1.txt
cmp /srv/data/report.csv "$restore/data/report.csv"
sha256sum /srv/data/report.csv "$restore/data/report.csv"

Plánovač

Příkazy plánovače jsou k dispozici v edici Max. Ukládají kompletní metadata úloh v šifrovaném .lbxjobs souboru, včetně cesty ke zdroji, cesty k výstupu, hesel, hesla pro zničení, klíčů vrstev, komprese, vycpávky, dělení a nastavení odstraňování obsahu zdroje.

Naplánované úlohy běží pouze, když je LockBox.Cli.exe schedule run spuštěn. Použijte Plánovač úloh Windows, systemd na Linuxu, cron, obal služby nebo dlouho běžící konzolovou relaci, pokud potřebujete, aby pracovník spustil úlohy automaticky po restartu.

Hodnoty frekvence

once
30m
hourly
2h
3h
6h
9h
12h
18h
daily
2d
3d
5d
weekly
2w
monthly
2mo
3mo
6mo
9mo
yearly

Přidat denní šifrovanou zálohu

$env:LBX_JOBS_PASSWORD = "jobs-file-password"
$env:LBX_MASTER = "master-password"
$env:LBX_L1 = "layer-key-1"
$env:LBX_DESTROY = "pressure-password"

.\LockBox.Cli.exe schedule add `
  --tasks "E:\Backups\jobs.lbxjobs" `
  --password-env LBX_JOBS_PASSWORD `
  --name "Nightly data backup" `
  --frequency daily `
  --start ((Get-Date).AddDays(1).ToString("o")) `
  --source "D:\Data" `
  --output "E:\Backups\nightly-data.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --destruction-password-env LBX_DESTROY `
  --compress

Přidat úlohu, která po úspěchu smaže obsah zdrojové složky

.\LockBox.Cli.exe schedule add `
  --tasks "E:\Backups\jobs.lbxjobs" `
  --password-env LBX_JOBS_PASSWORD `
  --name "Encrypt outgoing folder" `
  --frequency 30m `
  --start ((Get-Date).AddDays(1).ToString("o")) `
  --source "D:\Outgoing" `
  --output "E:\Backups\outgoing.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --delete-source-contents

Přidat měsíční archiv s vycpávkou a rozdělenými částmi

.\LockBox.Cli.exe schedule add `
  --tasks "E:\Backups\jobs.lbxjobs" `
  --password-env LBX_JOBS_PASSWORD `
  --name "Monthly legal archive" `
  --frequency monthly `
  --start ((Get-Date).AddDays(1).ToString("o")) `
  --source "D:\Legal" `
  --output "E:\Archives\legal-monthly.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --compress `
  --padding 4GB `
  --split 2GB

Seznam uložených úloh

.\LockBox.Cli.exe schedule list `
  --tasks "E:\Backups\jobs.lbxjobs" `
  --password-env LBX_JOBS_PASSWORD

Spustit pracovníka plánovače

.\LockBox.Cli.exe schedule run `
  --tasks "E:\Backups\jobs.lbxjobs" `
  --password-env LBX_JOBS_PASSWORD `
  --state "E:\Backups\jobs.status.json" `
  --poll-seconds 30

Spustit splatné úlohy jednou a ukončit

.\LockBox.Cli.exe schedule run-once `
  --tasks "E:\Backups\jobs.lbxjobs" `
  --password-env LBX_JOBS_PASSWORD `
  --state "E:\Backups\jobs.status.json"

Zobrazit nejnovější stav běhu

.\LockBox.Cli.exe schedule status --state "E:\Backups\jobs.status.json"

Stavové markery jsou [OK], [RUNNING] a [FAILED]. Selhaná úloha zahrnuje důvod a informuje uživatele, aby se v případě opakování problému obrátil na podporu.

JSON skripty

Použijte --script, když workflow obsahuje několik kroků. Spouštěč skriptů podporuje create, open, keygen, algorithms, device-id, license a activate.

Vytvořit a otevřít v jednom skriptu

{
  "stopOnError": true,
  "commands": [
    {
      "command": "create",
      "source": "D:\\Data",
      "output": "E:\\Backups\\data.lbx",
      "masterPasswordEnv": "LBX_MASTER",
      "destructionPasswordEnv": "LBX_DESTROY",
      "compression": true,
      "padding": "512MB",
      "split": "700MB",
      "layers": [
        { "algorithm": "AES-256-GCM", "keyEnv": "LBX_L1" },
        { "algorithm": "CHACHA20-POLY1305", "keyEnv": "LBX_L2" }
      ]
    },
    {
      "command": "open",
      "container": "E:\\Backups\\data.lbx",
      "output": "D:\\Restore",
      "masterPasswordEnv": "LBX_MASTER",
      "keyEnvs": [ "LBX_L1", "LBX_L2" ]
    }
  ]
}
.\LockBox.Cli.exe --script ".\backup.lockbox.json"

Pokračovat po selhaném kroku

{
  "stopOnError": false,
  "commands": [
    { "command": "license" },
    { "command": "algorithms" },
    {
      "command": "create",
      "source": "D:\\BuildOutput",
      "output": "E:\\Artifacts\\build.lbx",
      "masterPasswordEnv": "LBX_MASTER",
      "layers": [
        { "algorithm": "AES-128-GCM", "keyEnv": "LBX_L1" }
      ]
    }
  ]
}

Aktivovat ze skriptu

{
  "commands": [
    {
      "command": "activate",
      "licenseKeyFile": "C:\\Licenses\\lockbox-license.txt"
    },
    { "command": "license" }
  ]
}

Pole JSON a pravidla spuštění

Tabulka spojuje pole create a pole klíčů open s volbami CLI. Relativní cesty vycházejí z pracovního adresáře procesu; proměnné ani data se nedoplňují. Používejte jeden zdroj tajného údaje na pole. open čte keys, poté keyEnvs a keyFiles. Preferujte stopOnError: true; při false může pozdější úspěch zakrýt předchozí chybu. Skripty JSON nepodporují příkazy plánovače.

{
  "stopOnError": true,
  "commands": [
    {
      "command": "create",
      "source": "/srv/data",
      "output": "/backup/data.lbx",
      "masterPasswordFile": "/srv/lockbox/secrets/master.txt",
      "layers": [
        { "algorithm": "AES-128-GCM", "keyFile": "/srv/lockbox/secrets/layer1.txt" }
      ]
    },
    {
      "command": "open",
      "container": "/backup/data.lbx",
      "output": "/restore/check",
      "masterPasswordFile": "/srv/lockbox/secrets/master.txt",
      "keyFiles": ["/srv/lockbox/secrets/layer1.txt"]
    }
  ]
}
/opt/lockbox/LockBox.Cli --quiet script /srv/lockbox/backup.lockbox.json
source / sourceFolder / sourceFolderPath--sourceSložka k zabalení a zašifrování.
output / outputContainerPath--outputCesta výstupního .lbx.
masterPassword--masterInline hlavní heslo.
masterPasswordEnv--master-envNačíst hlavní heslo z proměnné prostředí.
masterPasswordFile--master-fileNačíst hlavní heslo ze souboru UTF-8 s textem.
layers[].algorithm + layers[].key--layerPřidat ALGORITHM=KEY.
layers[].algorithm + layers[].keyEnv--layer-envPřidat ALGORITHM=ENV.
layers[].algorithm + layers[].keyFile--layer-filePřidat ALGORITHM=FILE.
compression / compress--compressPovolit kompresi.
padding--paddingPřidat šifrovaný náhodný padding. Jednotky: B, KB, MB, GB, TB.
paddingBytes--padding-bytesVelikost paddingu v surových bajtech.
split / splitSize--splitRozdělit výstup na .lbx, .lbx1, .lbx2.
splitPartSizeBytes--split-bytesVelikost části rozdělení v surových bajtech.
destructionPassword--destruction-passwordMax-only inline destrukční heslo. Jeho zadání později jako hlavní heslo okamžitě přepíše kontejner.
destructionPasswordEnv--destruction-password-envNačíst Max-only destrukční heslo z proměnné prostředí.
destructionPasswordFile--destruction-password-fileNačíst Max-only destrukční heslo ze souboru UTF-8 s textem.
deleteSource / deleteSourceFolderAfterSuccess--delete-sourceSmazat zdrojovou složku po úspěšném ručním vytvoření.
container / containerPath--containerExistující .lbx kontejner.
keys[]--keyInline klíč vrstvy v původním pořadí.
keyEnvs[]--key-envKlíč vrstvy z proměnné prostředí.
keyFiles[]--key-fileKlíč vrstvy ze souboru textu UTF-8.

Recepty pro automatizaci

Zálohování šifrovaného výpisu databáze

$stamp = Get-Date -Format "yyyyMMdd-HHmmss"
$dump = "D:\DbDumps\$stamp"
New-Item -ItemType Directory -Path $dump | Out-Null

Copy-Item "D:\DatabaseExports\*" $dump -Recurse

.\LockBox.Cli.exe create `
  -s $dump `
  -o "E:\Backups\db-$stamp.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --compress `
  --padding 512MB

Ochrana artefaktů CI

.\LockBox.Cli.exe create `
  --source "$env:BUILD_ARTIFACTSTAGINGDIRECTORY" `
  --output "$env:AGENT_TEMPDIRECTORY\protected-artifacts.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-128-GCM=LBX_L1

Bezpečný přenos partnerovi

.\LockBox.Cli.exe create `
  -s "D:\PartnerPackage" `
  -o "E:\Transfer\partner-package.lbx" `
  --master-env LBX_MASTER `
  --layer-env AES-256-GCM=LBX_L1 `
  --layer-env CHACHA20-POLY1305=LBX_L2 `
  --compress `
  --split 1GB

Dlouhodobý archiv

.\LockBox.Cli.exe create `
  -s "D:\Records\2026" `
  -o "E:\ColdStorage\records-2026.lbx" `
  --master-file "C:\Secrets\records-master.txt" `
  --layer-file AES-256-GCM=C:\Secrets\records-layer1.txt `
  --layer-file SERPENT-256-CTR-HMACSHA512=C:\Secrets\records-layer2.txt `
  --compress `
  --padding 8GB `
  --split 4GB

Příklad dávkového souboru

@echo off
set LBX_MASTER=master-password
set LBX_L1=layer-key-1

LockBox.Cli.exe create ^
  --source "D:\Data" ^
  --output "E:\Backups\data.lbx" ^
  --master-env LBX_MASTER ^
  --layer-env AES-128-GCM=LBX_L1

if errorlevel 1 exit /b %errorlevel%
echo OK

Windows: záloha více složek

Uložte skript na uvedenou cestu. Pro každý zdroj vytvoří jedinečně pojmenovaný kontejner a protokol, při chybě skončí a zachová návratový kód CLI. AES-128-GCM funguje ve Free; komprese a rozdělení vyžadují Pro nebo Max.

C:\LockBox\backup.ps1

param(
    [string[]]$Source = @('D:\Data'),
    [string]$Destination = 'E:\Backups'
)
$ErrorActionPreference = 'Stop'
$cli = 'C:\Tools\LockBox\LockBox.Cli.exe'
$secretDir = 'C:\LockBox\secrets'
try {
    foreach ($folder in $Source) {
        $sourcePath = (Resolve-Path -LiteralPath $folder).Path
        $stamp = (Get-Date).ToUniversalTime().ToString('yyyyMMdd-HHmmss-fff')
        $runId = [guid]::NewGuid().ToString('N')
        $runDir = Join-Path $Destination "$stamp-$runId"
        New-Item -ItemType Directory -Path $runDir | Out-Null
        $container = Join-Path $runDir 'data.lbx'
        $log = Join-Path $runDir 'create.log'
        $cliArgs = @(
            '--quiet', 'create', '--source', $sourcePath, '--output', $container,
            '--master-file', (Join-Path $secretDir 'master.txt'),
            '--layer-file', ('AES-128-GCM=' + (Join-Path $secretDir 'layer1.txt'))
        )
        $ErrorActionPreference = 'Continue'
        & $cli @cliArgs > $log 2>&1
        $result = $LASTEXITCODE
        $ErrorActionPreference = 'Stop'
        if ($result -ne 0) {
            Get-Content -LiteralPath $log
            exit $result
        }
        if (-not (Test-Path -LiteralPath $container -PathType Leaf)) {
            throw "Container missing: $container"
        }
        Write-Output $container
    }
    exit 0
} catch {
    Write-Error $_ -ErrorAction Continue
    exit 1
}
& 'C:\LockBox\backup.ps1' -Source 'D:\Data', 'D:\Reports' -Destination 'E:\Backups'
# 0 = success; 1 = runtime error; 2 = usage error; 3 = edition restriction
$LASTEXITCODE

Linux: bezobslužné zálohy

Uložte skript Bash s konci řádků LF. Připravte CLI a tajné údaje na uvedených cestách, zdrojové složky předejte jako argumenty. Každé spuštění má vlastní adresář. Chyby zanechají protokol a nenulový kód; zdroje zůstanou zachovány.

/srv/lockbox/backup.sh

#!/bin/bash
set -eu
umask 077
cli=/opt/lockbox/LockBox.Cli
secret_dir=/srv/lockbox/secrets
backup_root=/backup
mkdir -p "$backup_root"
if [ "$#" -eq 0 ]; then
    set -- /srv/data
fi
for source in "$@"; do
    run_dir=$(mktemp -d "$backup_root/$(date -u +%Y%m%d-%H%M%S)-XXXXXX")
    container="$run_dir/data.lbx"
    log="$run_dir/create.log"
    "$cli" --quiet create \
        --source "$source" \
        --output "$container" \
        --master-file "$secret_dir/master.txt" \
        --layer-file "AES-128-GCM=$secret_dir/layer1.txt" > "$log" 2>&1 || {
        result=$?
        cat "$log" >&2
        exit "$result"
    }
    test -s "$container"
    printf '%s\n' "$container"
done
/bin/bash /srv/lockbox/backup.sh /srv/data /srv/reports

Plánování operačním systémem

Tyto úlohy spouštějí uvedené skripty; toto použití create nevyžaduje Max. Registrace Windows běží pouze při přihlášení uživatele; podle potřeby nastavte běh bez přihlášení v Plánovači úloh. Přidejte cron do crontab zálohovacího účtu a ověřte flock. Oba příklady běží ve 02:00 místního času a brání souběhu plánovaných spuštění. Ověřte oprávnění a vyzkoušejte ručně.

Windows

$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-NoProfile -NonInteractive -File "C:\LockBox\backup.ps1"' -WorkingDirectory 'C:\LockBox'
$trigger = New-ScheduledTaskTrigger -Daily -At '02:00'
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -MultipleInstances IgnoreNew -ExecutionTimeLimit ([TimeSpan]::Zero)
$principal = New-ScheduledTaskPrincipal -UserId ([Security.Principal.WindowsIdentity]::GetCurrent().Name) -LogonType Interactive
Register-ScheduledTask -TaskName 'LockBox backup' -Action $action -Trigger $trigger -Settings $settings -Principal $principal
Start-ScheduledTask -TaskName 'LockBox backup'
Get-ScheduledTaskInfo -TaskName 'LockBox backup'

New-ScheduledTaskSettingsSet · New-ScheduledTaskPrincipal

Linux: cron

crontab -e
0 2 * * * /usr/bin/flock -n /srv/lockbox/backup.lock /bin/bash /srv/lockbox/backup.sh >> /srv/lockbox/cron.log 2>&1

crontab(5)

Max: provoz plánovače

Vytvořte servisní účet lockbox s potřebnými právy, aktivujte pro něj Max a připravte samostatný soubor hesla UTF-8 jobs.txt. add přidává, neaktualizuje: použijte jednou pro každou úlohu. Pro soubor úloh provozujte jeden proces a po změně jej restartujte. Stavový JSON neobnovuje historii: prošlá opakování přeskočí, prošlá úloha once může běžet znovu. Pro pravidelné systémové spouštění použijte create místo opakovaného run-once. Plánovač znovu používá výstupní název.

/opt/lockbox/LockBox.Cli schedule add \
  --tasks /srv/lockbox/jobs.lbxjobs \
  --password-file /srv/lockbox/secrets/jobs.txt \
  --name nightly-data --frequency daily \
  --start "$(date -d 'tomorrow 02:00' --iso-8601=seconds)" \
  --source /srv/data --output /backup/nightly-data.lbx \
  --master-file /srv/lockbox/secrets/master.txt \
  --layer-file AES-128-GCM=/srv/lockbox/secrets/layer1.txt

/opt/lockbox/LockBox.Cli schedule list --tasks /srv/lockbox/jobs.lbxjobs --password-file /srv/lockbox/secrets/jobs.txt

/etc/systemd/system/lockbox-scheduler.service

[Unit]
Description=LockBox scheduler
After=local-fs.target
RequiresMountsFor=/srv/data /srv/lockbox /backup

[Service]
Type=simple
User=lockbox
WorkingDirectory=/srv/lockbox
UMask=0077
ExecStart=/opt/lockbox/LockBox.Cli schedule run --tasks /srv/lockbox/jobs.lbxjobs --password-file /srv/lockbox/secrets/jobs.txt --state /srv/lockbox/jobs.status.json --poll-seconds 30
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now lockbox-scheduler.service
systemctl status lockbox-scheduler.service
journalctl -u lockbox-scheduler.service -n 50 --no-pager
/opt/lockbox/LockBox.Cli schedule status --state /srv/lockbox/jobs.status.json

systemd.service

Reference příkazů

PříkazÚčelAlias
helpZobrazit nápovědu v konzoli.--help, -h, ?
device-idVytisknout ID zařízení PC pro vydání licence.deviceid, machine-id
licenseZobrazit aktuální edici a cestu licence.license-status, status
activateNainstalovat licenční klíč vázaný na zařízení.activation
algorithmsVypsat algoritmy a minimální edice.profiles, list-algorithms
keygenGenerovat náhodné klíče.generate-key, generate-keys
createVytvořit šifrovaný kontejner.encrypt
openRozbalit šifrovaný kontejner.decrypt, extract
scheduleSpravovat a spouštět naplánované úlohy.scheduler, scheduled-tasks
scriptSpustit JSON automatizační soubor.--script

Možnosti vytvoření

--source, -sSložka k zabalení a zašifrování.
--output, -oCesta výstupního .lbx.
--masterInline hlavní heslo.
--master-envNačíst hlavní heslo z proměnné prostředí.
--master-fileNačíst hlavní heslo ze souboru UTF-8 s textem.
--layerPřidat ALGORITHM=KEY.
--layer-envPřidat ALGORITHM=ENV.
--layer-filePřidat ALGORITHM=FILE.
--algorithm, -aAlternativní algoritmus spárovaný s --key, --key-env nebo --key-file.
--compressPovolit kompresi.
--no-compressZakázat kompresi, pokud byla dříve nastavena.
--paddingPřidat šifrovaný náhodný padding. Jednotky: B, KB, MB, GB, TB.
--padding-bytesVelikost paddingu v surových bajtech.
--splitRozdělit výstup na .lbx, .lbx1, .lbx2.
--split-bytesVelikost části rozdělení v surových bajtech.
--no-splitZakázat rozdělení, pokud bylo dříve nastaveno.
--destruction-passwordMax-only inline destrukční heslo. Jeho zadání později jako hlavní heslo okamžitě přepíše kontejner.
--destruction-password-envNačíst Max-only destrukční heslo z proměnné prostředí.
--destruction-password-fileNačíst Max-only destrukční heslo ze souboru UTF-8 s textem.
--delete-sourceSmazat zdrojovou složku po úspěšném ručním vytvoření.

Možnosti otevření

--container, -cExistující .lbx kontejner.
--output, -oAdresář pro extrakci.
--master, --master-env, --master-fileZdroje hlavního hesla.
--key, -kInline klíč vrstvy v původním pořadí.
--key-envKlíč vrstvy z proměnné prostředí.
--key-fileKlíč vrstvy ze souboru textu UTF-8.
Povoleno pro pracovní postupy s heslem pro destrukci. Normální extrakce selže po přečtení metadat, pokud chybí požadované klíče.

Možnosti plánovače

schedule addPřidat úlohu do šifrovaného .lbxjobs.
schedule listZobrazit uložené úlohy.
schedule runSpustit dlouhodobého pracovníka.
schedule run-onceSpustit splněné úlohy jednou a ukončit.
schedule statusPřečíst poslední JSON stavu běhu.
--tasks, --fileCesta k šifrovanému souboru úloh.
--password, --password-env, --password-fileHeslo pro soubor úloh.
--state, --status-fileCesta k JSON stavu běhu.
--nameNázev úlohy pro schedule add.
--frequency, --everyFrekvence úlohy.
--start, --start-atMístní datum/čas spuštění.
--delete-source-contentsSmazat obsah původního zdrojového adresáře po úspěšném naplánovaném běhu.
--poll-secondsInterval dotazování pracovníka pro schedule run.

--language nebo --lang volí jazyk konzole; --quiet potlačí běžný výpis průběhu, ale chyby stále míří do standardního chybového výstupu. Ctrl+C požádá o zrušení a vrátí 1. Kód 2 znamená neplatnou syntaxi, kód 3 funkci vytváření nedostupnou v aktuální edici. Kód 0 se vrací i při úmyslném spuštění destrukčního hesla, takže sám nepotvrzuje extrakci souborů. Před dalšími kroky automatizace ověřte očekávaný výstup.

Návratové kódy a sledování

schedule run-once může vrátit nulu i při chybě úlohy; schedule status také bez stavu. Kontrolujte savedAt, lastSuccessAt a lastError; [OK] může znamenat pouze Ready. Monitor předpokládá denní zálohy, dotazování po 30 sekundách a úspěch během 26 hodin. Upravte prahy. Stavy JSON jsou číselné; --quiet potlačuje běžný výstup úspěšných create/open.

$ErrorActionPreference = 'Stop'
try {
    $status = Get-Content -LiteralPath 'E:\Backups\jobs.status.json' -Raw | ConvertFrom-Json
    if (@($status.tasks).Count -eq 0) { throw 'No tasks in status file' }
    if ([DateTimeOffset]$status.savedAt -lt [DateTimeOffset]::Now.AddMinutes(-2)) {
        throw 'Worker status is stale'
    }
    foreach ($task in $status.tasks) {
        if ($task.state -eq 3 -or $task.lastError) { throw "Task failed: $($task.name)" }
        if (-not $task.lastSuccessAt -or [DateTimeOffset]$task.lastSuccessAt -lt [DateTimeOffset]::Now.AddHours(-26)) {
            throw "No recent successful backup: $($task.name)"
        }
    }
    exit 0
} catch {
    Write-Error $_ -ErrorAction Continue
    exit 1
}
0 -> Ready
1 -> Running
2 -> Completed
3 -> Failed

Řešení problémů

Proč dostávám kód ukončení 3?

Aktuální edice neumožňuje požadovanou funkci: příliš mnoho vrstev, komprese, kryptografické doplňování, dělení, plánovač nebo silnější algoritmus.

Proč selhává extrakce s chybou autentizační značky?

Mistrovské heslo, klíč vrstvy, pořadí vrstev nebo kontejnerový soubor je nesprávný. U dělených kontejnerů také ověřte, že každý díl je přítomen ve stejné složce.

Proč plánovač neběží po uzavření konzole?

schedule run je pracovní proces. Nechte jej otevřený nebo jej spusťte pomocí Plánovače úloh Windows nebo služby wrapper.

Proč okamžitě selhává přidání úlohy do plánovače?

Plánovač ověřuje licenci, zdrojovou složku, výstupní cestu, algoritmy, hesla a dostupné místo na disku před uložením úlohy.

Mohu ukládat hesla plánovače do souboru .lbxjobs?

Ano. Soubor .lbxjobs je šifrován heslem souboru plánovače a ukládá kompletní metadata úloh, včetně šifrovacích hesel a klíčů vrstev.

Co se stane, pokud naplánované spuštění překryje předchozí běh?

Nová událost je přeskočena, úloha hlásí stav selhání s vysvětlením a budoucí běhy pokračují po dokončení aktivního běhu.

Jak se vyhnout ukládání tajemství do historie shellu?

Použijte --master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env a --password-file.