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_L1Instalace 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 SHA256uname -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.zipWindows 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.zipSlož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.txtPří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.txtAktivace 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 licenseZachá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.
| Účel | Přímo | Prostř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.txtAlgoritmy 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-keysVytvoř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
--sourcenebo-s: zdrojová složka.--outputnebo-o: výstupní.lbxcesta.--master,--master-envnebo--master-file.- Alespoň jedna vrstva:
--layer,--layer-envnebo--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
extractOvěř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 $restoreset -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.jsonsource / sourceFolder / sourceFolderPath | --source | Složka k zabalení a zašifrování. |
output / outputContainerPath | --output | Cesta výstupního .lbx. |
masterPassword | --master | Inline hlavní heslo. |
masterPasswordEnv | --master-env | Načíst hlavní heslo z proměnné prostředí. |
masterPasswordFile | --master-file | Načíst hlavní heslo ze souboru UTF-8 s textem. |
layers[].algorithm + layers[].key | --layer | Přidat ALGORITHM=KEY. |
layers[].algorithm + layers[].keyEnv | --layer-env | Přidat ALGORITHM=ENV. |
layers[].algorithm + layers[].keyFile | --layer-file | Přidat ALGORITHM=FILE. |
compression / compress | --compress | Povolit kompresi. |
padding | --padding | Přidat šifrovaný náhodný padding. Jednotky: B, KB, MB, GB, TB. |
paddingBytes | --padding-bytes | Velikost paddingu v surových bajtech. |
split / splitSize | --split | Rozdělit výstup na .lbx, .lbx1, .lbx2. |
splitPartSizeBytes | --split-bytes | Velikost části rozdělení v surových bajtech. |
destructionPassword | --destruction-password | Max-only inline destrukční heslo. Jeho zadání později jako hlavní heslo okamžitě přepíše kontejner. |
destructionPasswordEnv | --destruction-password-env | Načíst Max-only destrukční heslo z proměnné prostředí. |
destructionPasswordFile | --destruction-password-file | Načíst Max-only destrukční heslo ze souboru UTF-8 s textem. |
deleteSource / deleteSourceFolderAfterSuccess | --delete-source | Smazat zdrojovou složku po úspěšném ručním vytvoření. |
container / containerPath | --container | Existující .lbx kontejner. |
keys[] | --key | Inline klíč vrstvy v původním pořadí. |
keyEnvs[] | --key-env | Klíč vrstvy z proměnné prostředí. |
keyFiles[] | --key-file | Klíč 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 OKWindows: 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
$LASTEXITCODELinux: 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/reportsPlá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 -e0 2 * * * /usr/bin/flock -n /srv/lockbox/backup.lock /bin/bash /srv/lockbox/backup.sh >> /srv/lockbox/cron.log 2>&1Max: 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.targetsudo 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.jsonReference příkazů
| Příkaz | Účel | Alias |
|---|---|---|
help | Zobrazit nápovědu v konzoli. | --help, -h, ? |
device-id | Vytisknout ID zařízení PC pro vydání licence. | deviceid, machine-id |
license | Zobrazit aktuální edici a cestu licence. | license-status, status |
activate | Nainstalovat licenční klíč vázaný na zařízení. | activation |
algorithms | Vypsat algoritmy a minimální edice. | profiles, list-algorithms |
keygen | Generovat náhodné klíče. | generate-key, generate-keys |
create | Vytvořit šifrovaný kontejner. | encrypt |
open | Rozbalit šifrovaný kontejner. | decrypt, extract |
schedule | Spravovat a spouštět naplánované úlohy. | scheduler, scheduled-tasks |
script | Spustit JSON automatizační soubor. | --script |
Možnosti vytvoření
--source, -s | Složka k zabalení a zašifrování. |
--output, -o | Cesta výstupního .lbx. |
--master | Inline hlavní heslo. |
--master-env | Načíst hlavní heslo z proměnné prostředí. |
--master-file | Načíst hlavní heslo ze souboru UTF-8 s textem. |
--layer | Přidat ALGORITHM=KEY. |
--layer-env | Přidat ALGORITHM=ENV. |
--layer-file | Přidat ALGORITHM=FILE. |
--algorithm, -a | Alternativní algoritmus spárovaný s --key, --key-env nebo --key-file. |
--compress | Povolit kompresi. |
--no-compress | Zakázat kompresi, pokud byla dříve nastavena. |
--padding | Přidat šifrovaný náhodný padding. Jednotky: B, KB, MB, GB, TB. |
--padding-bytes | Velikost paddingu v surových bajtech. |
--split | Rozdělit výstup na .lbx, .lbx1, .lbx2. |
--split-bytes | Velikost části rozdělení v surových bajtech. |
--no-split | Zakázat rozdělení, pokud bylo dříve nastaveno. |
--destruction-password | Max-only inline destrukční heslo. Jeho zadání později jako hlavní heslo okamžitě přepíše kontejner. |
--destruction-password-env | Načíst Max-only destrukční heslo z proměnné prostředí. |
--destruction-password-file | Načíst Max-only destrukční heslo ze souboru UTF-8 s textem. |
--delete-source | Smazat zdrojovou složku po úspěšném ručním vytvoření. |
Možnosti otevření
--container, -c | Existující .lbx kontejner. |
--output, -o | Adresář pro extrakci. |
--master, --master-env, --master-file | Zdroje hlavního hesla. |
--key, -k | Inline klíč vrstvy v původním pořadí. |
--key-env | Klíč vrstvy z proměnné prostředí. |
--key-file | Klíč 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 add | Přidat úlohu do šifrovaného .lbxjobs. |
schedule list | Zobrazit uložené úlohy. |
schedule run | Spustit dlouhodobého pracovníka. |
schedule run-once | Spustit splněné úlohy jednou a ukončit. |
schedule status | Přečíst poslední JSON stavu běhu. |
--tasks, --file | Cesta k šifrovanému souboru úloh. |
--password, --password-env, --password-file | Heslo pro soubor úloh. |
--state, --status-file | Cesta k JSON stavu běhu. |
--name | Název úlohy pro schedule add. |
--frequency, --every | Frekvence úlohy. |
--start, --start-at | Místní datum/čas spuštění. |
--delete-source-contents | Smazat obsah původního zdrojového adresáře po úspěšném naplánovaném běhu. |
--poll-seconds | Interval 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.