LockBox CLI-dokumentation
LockBox CLI är den engelskspråkiga automatiseringsbyggnaden för skriptad kryptering, extrahering, aktivering, schemalagda krypterade säkerhetskopior och CI/CD-arbetsflöden. Den använder samma enhetsbundna licensmodell som desktop-appen.
Kom igång snabbt
Placera LockBox.Cli.exe i en mapp som ingår i PATH,
eller kalla på den med fullständig sökväg. --cli-markören accepteras för kompatibilitet
men är inte nödvändig i CLI-endast bygg.
.\LockBox.Cli.exe --help
.\LockBox.Cli.exe device-id
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen --count 3
Minimalt skapa och öppna arbetsflöde:
$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 använder samma kommandon med snedstreckssökvägar och en binär utan .exe-suffix:
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_L1Installera och kontrollera CLI
Packa upp ZIP-filen för ditt system och din processor. .NET ingår. Jämför hashvärdet med SHA256SUMS.txt. Placera CLI på den absoluta sökvägen nedan och kontrollera hjälp och licens med kontot som ska köra säkerhetskopieringen.
Linux behöver också distributionens systembibliotek, däribland ICU och OpenSSL; medföljande .NET tillhandahåller dem inte. I Windows måste den gällande körningsprincipen tillåta PowerShell-skript.
.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.zipMappar, sökvägar och utrymme
Anpassa sökvägarna. Källmappen får inte vara tom och behållaren måste ligga utanför den. Samma målnamn ersätter föregående behållare och delar. Reservera tillfälligt utrymme bredvid behållaren och en källkopia för schemalagda jobb. Storleksenheterna bygger på 1024; utfyllnad lägger till byte.
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.txtFörbered filer med hemligheter
Generera hemligheter en gång, spara en skyddad kopia och begränsa filåtkomsten. Exemplen vägrar ersätta befintliga nycklar. UTF-8-filer behåller blanksteg men tar bort avslutande radbrytningar. Bevara originalnycklarna för äldre säkerhetskopior.
$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.txtAktivering och licensstatus
Licensnyckeln är bunden till enhets-ID som skrivs ut av samma CLI-bygg. Om en licens kopieras till en annan PC, avvisar LockBox den och återgår till Gratis.
Windows kontrollerar de befintliga LockBox-applikationsdatalägesplatserna. Linux lagrar aktivering i
$XDG_CONFIG_HOME/lockbox/.lockbox.license, sedan
~/.config/lockbox/.lockbox.license, med ~/.lockbox/.lockbox.license
som reserv.
Hämta enhets-ID
.\LockBox.Cli.exe device-id
Kontrollera nuvarande upplaga
.\LockBox.Cli.exe license
Aktivera från en licensfil
.\LockBox.Cli.exe activate --license-file "C:\Licenses\lockbox-license.txt"
Aktivera från en miljövariabel
$env:LBX_LICENSE = "LBX-LIC-..."
.\LockBox.Cli.exe activate --license-env LBX_LICENSE
Aktivera inline
Inline-aktivering fungerar, men det kan läcka genom shellhistorik eller processloggar.
.\LockBox.Cli.exe activate --license "LBX-LIC-..."
Linux-aktivering
export LBX_LICENSE="LBX-LIC-..."
./LockBox.Cli activate --license-env LBX_LICENSE
./LockBox.Cli licenseHantering av hemligheter
Föredra miljövariabler eller filer. Inbäddade hemligheter är endast användbara för testning. Huvudlösenord och lagernycklar måste bevaras: utan dem kan inte containern öppnas.
| Syfte | Inbäddad | Miljö | Fil |
|---|---|---|---|
| Huvudlösenord | --master value | --master-env ENV | --master-file path |
| Skapa lagernyckel | --layer ALG=KEY | --layer-env ALG=ENV | --layer-file ALG=FILE |
| Öppna lagernyckel | --key value | --key-env ENV | --key-file path |
| Schemaläggarens fil-lösenord | --password value | --password-env ENV | --password-file path |
| Containerförstöringslösenord | --destruction-password value | --destruction-password-env ENV | --destruction-password-file path |
| Licensnyckel | --license value | --license-env ENV | --license-file path |
Filbaserade hemligheter
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.txtAlgoritmer och nyckelgenerering
Använd algorithms för att se alla stödda profiler och minimiutgåvor.
Använd keygen för lagernycklar.
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen
.\LockBox.Cli.exe keygen --count 9
.\LockBox.Cli.exe generate-keys -n 20
Stödda kommandoalias:
algorithms
list-algorithms
profiles
keygen
generate-key
generate-keysSkapa behållare
create packar en källmapp, tillämpar valfri komprimering och utfyllnad,
krypterar nyttolasten genom ett eller flera lager och skriver en .lbx behållare.
Obligatoriska alternativ
--sourceeller-s: källmapp.--outputeller-o: utdata.lbx-sökväg.--master,--master-enveller--master-file.- Minst ett lager:
--layer,--layer-enveller--layer-file.
Minimalt AES-behållare
.\LockBox.Cli.exe create `
-s "D:\Data" `
-o "E:\Backups\data.lbx" `
--master-env LBX_MASTER `
--layer-env AES-128-GCM=LBX_L1
Komprimerad behållare
.\LockBox.Cli.exe create `
--source "D:\Exports" `
--output "E:\Backups\exports.lbx" `
--master-env LBX_MASTER `
--layer-env AES-256-GCM=LBX_L1 `
--compress
Kryptografisk utfyllnad
.\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
Dela upp behållaren i delar
.\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
Den första delen behåller .lbx. Ytterligare delar använder
.lbx1, .lbx2 och så vidare. Behåll alla delar i samma mapp.
Exempel på nio-lagers Max
$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
Alternativ algoritm-/nyckelsyntax
.\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
Radera källan efter lyckad manuell skapning
.\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 raderar endast källmappen efter att behållaren har skapats framgångsrikt.
Schemaläggaren har ett annat alternativ: --delete-source-contents.
Containerns förstörelselösenord
Max edition kan lägga till ett separat förstörelselösenord till en container. Om det lösenordet anges senare som huvudlösenord, skriver LockBox omedelbart över containern utan bekräftelse. Detta är avsett för scenarier med påtryckning. Håll det separat från det verkliga huvudlösenordet.
Kommandot kontrollerar ledigt diskutrymme, krypterar den ursprungliga containerdata med en ny slumpmässig
hemlighet och AES-256-GCM i en temporär fil, normaliserar resultatet till exakt ursprunglig storlek,
ersätter den ursprungliga filen, och glömmer den slumpmässiga hemligheten. För delade containrar ersätts varje
.lbx, .lbx1, .lbx2 del i samma mapp
samtidigt som de ursprungliga delstorlekarna bevaras.
Skapa med ett förstörelselösenord
$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
Utöva förstörelse utan lagernycklar
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_DESTROY
Linux-trigger
export LBX_DESTROY="pressure-password"
./LockBox.Cli open \
--container "/backup/data.lbx" \
--output "/restore" \
--master-env LBX_DESTROY
Efter lyckad förstörelse är containern inte längre en giltig LockBox-fil. CLI returnerar
utgångskod 0 eftersom den begärda förstörelseåtgärden slutfördes framgångsrikt.
Öppna containrar
open extraherar en container till utmatningsmappen. För normal extrahering måste lagernycklar
lämnas i samma ordning som användes vid skapandet. För ett arbetsflöde med förstörelselösenord krävs endast
containerbanan, utmatningsbanan och förstörelselösenordet som huvudlösenord.
Öppna en enlagerscontainer
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Öppna en delad container
.\LockBox.Cli.exe open `
-c "E:\Backups\data.lbx" `
-o "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Öppna en multilagerscontainer
.\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
Alias
open
decrypt
extractKontrollera genom återställning
Skapa en liten report.csv för testet. Packa upp i en ny mapp; källmappens namn bevaras inuti. Håll alla delar tillsammans och jämför med oförändrade källfiler. Uppackning kräver skrivbart tillfälligt utrymme bredvid behållaren. Skydda även återställda okrypterade filer.
$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"Schemaläggare
Schemaläggarkommandon är tillgängliga i Max-versionen. De lagrar fullständig uppgiftsmetadata
i en krypterad .lbxjobs-fil, inklusive källväg, utdata-väg,
lösenord, destruktionslösenord, lager nycklar, komprimering, utfyllnad, uppdelning och
inställning för radering av källinnehåll.
Schemalagda jobb körs endast medan LockBox.Cli.exe schedule run körs.
Använd Windows Task Scheduler, Linux systemd, cron, en service-wrapper, eller en långvarig konsol
session om du behöver att arbetsflödet startar automatiskt efter omstart.
Frekvensvärden
once
30m
hourly
2h
3h
6h
9h
12h
18h
daily
2d
3d
5d
weekly
2w
monthly
2mo
3mo
6mo
9mo
yearly
Lägg till en daglig krypterad säkerhetskopiuppgift
$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
Lägg till en uppgift som raderar källmappens innehåll efter framgång
.\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
Lägg till ett månatligt arkiv med utfyllnad och uppdelade delar
.\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
Lista sparade uppgifter
.\LockBox.Cli.exe schedule list `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD
Kör schemaläggarens arbetare
.\LockBox.Cli.exe schedule run `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json" `
--poll-seconds 30
Kör förfallna uppgifter en gång och avsluta
.\LockBox.Cli.exe schedule run-once `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json"
Visa senaste körstatus
.\LockBox.Cli.exe schedule status --state "E:\Backups\jobs.status.json"
Statusmarkörer är [OK], [RUNNING] och [FAILED].
En misslyckad uppgift inkluderar orsaken och uppmanar användaren att kontakta support om problemet upprepas.
JSON-skript
Använd --script när ett arbetsflöde har flera steg. Skriptköraren stöder
create, open, keygen, algorithms,
device-id, license och activate.
Skapa och öppna i ett skript
{
"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"
Fortsätt efter ett misslyckat steg
{
"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" }
]
}
]
}
Aktivera från skript
{
"commands": [
{
"command": "activate",
"licenseKeyFile": "C:\\Licenses\\lockbox-license.txt"
},
{ "command": "license" }
]
}JSON-fält och körregler
Tabellen kopplar create-fält och open-nyckellistor till CLI-alternativ. Relativa sökvägar utgår från processens arbetskatalog; variabler och datum ersätts inte. Använd en hemlighetskälla per fält. open läser keys, sedan keyEnvs och keyFiles. Välj helst stopOnError: true; med false kan senare framgång dölja tidigare fel. JSON-skript stöder inte schemaläggarkommandon.
{
"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 | Mapp att packa och kryptera. |
output / outputContainerPath | --output | Utdata .lbx-sökväg. |
masterPassword | --master | Inbyggt huvudlösenord. |
masterPasswordEnv | --master-env | Läs huvudlösenord från miljövariabel. |
masterPasswordFile | --master-file | Läs huvudlösenord från UTF-8 textfil. |
layers[].algorithm + layers[].key | --layer | Lägg till ALGORITHM=KEY. |
layers[].algorithm + layers[].keyEnv | --layer-env | Lägg till ALGORITHM=ENV. |
layers[].algorithm + layers[].keyFile | --layer-file | Lägg till ALGORITHM=FILE. |
compression / compress | --compress | Aktivera komprimering. |
padding | --padding | Lägg till krypterad slumpmässig påfyllning. Enheter: B, KB, MB, GB, TB. |
paddingBytes | --padding-bytes | Påfyllningsstorlek i råa byte. |
split / splitSize | --split | Dela utdata i .lbx, .lbx1, .lbx2. |
splitPartSizeBytes | --split-bytes | Storlek på del i råa byte. |
destructionPassword | --destruction-password | Endast Max inbyggt destruktionslösenord. Att ange det senare som huvudlösenord skriver över containern omedelbart. |
destructionPasswordEnv | --destruction-password-env | Läs det endast Max destruktionslösenordet från en miljövariabel. |
destructionPasswordFile | --destruction-password-file | Läs det endast Max destruktionslösenordet från en UTF-8 textfil. |
deleteSource / deleteSourceFolderAfterSuccess | --delete-source | Ta bort källmappen efter lyckad manuell skapelse. |
container / containerPath | --container | Existerande .lbx-behållare. |
keys[] | --key | Inline-lager nyckel i ursprunglig ordning. |
keyEnvs[] | --key-env | Lager nyckel från miljövariabel. |
keyFiles[] | --key-file | Lager nyckel från UTF-8 textfil. |
Automationsrecept
Säkerhetskopiera krypterad databasmagasin
$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
Skydd av CI-artifakter
.\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
Säker partneröverföring
.\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
Långtidsarkiv
.\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
Exempel på batchfil
@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: kopiera flera mappar
Spara skriptet på angiven sökväg. Det skapar en unikt namngiven behållare och logg för varje källa, stannar vid fel och bevarar CLI:s avslutningskod. AES-128-GCM fungerar med Free; komprimering och uppdelning kräver Pro eller 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: obevakade säkerhetskopior
Spara Bash-skriptet med LF-radslut. Förbered CLI och hemligheter på angivna sökvägar och skicka källmappar som argument. Varje körning får en egen katalog. Fel lämnar en logg och en kod som inte är noll; källfilerna bevaras.
/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/reportsSchemalägg med operativsystemet
Jobben startar skripten ovan; denna användning av create kräver inte Max. Windows-registreringen körs bara när användaren är inloggad; konfigurera körning utan inloggning i Schemaläggaren vid behov. Lägg cron i säkerhetskopieringskontots crontab efter kontroll av flock. Båda exemplen körs 02:00 lokal tid och förhindrar överlappande schemakörningar. Kontrollera rättigheter och testa manuellt.
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: driva schemaläggaren
Skapa tjänstkontot lockbox med rätt behörigheter, aktivera Max för kontot och förbered den separata UTF-8-lösenordsfilen jobs.txt. add lägger till, uppdaterar inte: använd en gång per jobb. Kör en process per jobbfil och starta om efter ändringar. Status-JSON återställer ingen historik: försenade återkommande tillfällen hoppas över, ett försenat once-jobb kan köras igen. Använd create för periodiska OS-starter i stället för upprepade run-once. Schemaläggaren återanvänder målnamnet.
/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.jsonKommandoreferens
| Kommando | Syfte | Alias |
|---|---|---|
help | Visa konsolhjälp. | --help, -h, ? |
device-id | Skriv ut PC-enhets-ID för licensutfärdande. | deviceid, machine-id |
license | Visa aktuell utgåva och licensväg. | license-status, status |
activate | Installera en enhetsbunden licensnyckel. | activation |
algorithms | Lista algoritmer och minimala utgåvor. | profiles, list-algorithms |
keygen | Generera slumpmässiga nycklar. | generate-key, generate-keys |
create | Skapa krypterad container. | encrypt |
open | Extrahera krypterad container. | decrypt, extract |
schedule | Hantera och kör schemalagda uppgifter. | scheduler, scheduled-tasks |
script | Kör JSON-automationsfil. | --script |
Skapa alternativ
--source, -s | Mapp att packa och kryptera. |
--output, -o | Utdata .lbx-sökväg. |
--master | Inbyggt huvudlösenord. |
--master-env | Läs huvudlösenord från miljövariabel. |
--master-file | Läs huvudlösenord från UTF-8 textfil. |
--layer | Lägg till ALGORITHM=KEY. |
--layer-env | Lägg till ALGORITHM=ENV. |
--layer-file | Lägg till ALGORITHM=FILE. |
--algorithm, -a | Alternativ algoritmform som paras med --key, --key-env, eller --key-file. |
--compress | Aktivera komprimering. |
--no-compress | Inaktivera komprimering om tidigare inställd. |
--padding | Lägg till krypterad slumpmässig påfyllning. Enheter: B, KB, MB, GB, TB. |
--padding-bytes | Påfyllningsstorlek i råa byte. |
--split | Dela utdata i .lbx, .lbx1, .lbx2. |
--split-bytes | Storlek på del i råa byte. |
--no-split | Inaktivera delning om tidigare inställd. |
--destruction-password | Endast Max inbyggt destruktionslösenord. Att ange det senare som huvudlösenord skriver över containern omedelbart. |
--destruction-password-env | Läs det endast Max destruktionslösenordet från en miljövariabel. |
--destruction-password-file | Läs det endast Max destruktionslösenordet från en UTF-8 textfil. |
--delete-source | Ta bort källmappen efter lyckad manuell skapelse. |
Öppna alternativ
--container, -c | Existerande .lbx-behållare. |
--output, -o | Extraktionsmapp. |
--master, --master-env, --master-file | Källan för huvudlösenordet. |
--key, -k | Inline-lager nyckel i ursprunglig ordning. |
--key-env | Lager nyckel från miljövariabel. |
--key-file | Lager nyckel från UTF-8 textfil. |
— | Tillåten för arbetsflöden med destruktionslösenord. Normal extraktion misslyckas efter metadata-läsning om nödvändiga nycklar saknas. |
Schemaläggningsalternativ
schedule add | Lägg till en uppgift till krypterad .lbxjobs. |
schedule list | Visa sparade uppgifter. |
schedule run | Kör långlivad arbetare. |
schedule run-once | Kör förfallna uppgifter en gång och avsluta. |
schedule status | Läs senaste runtime-status JSON. |
--tasks, --file | Krypterad uppgifts filsökväg. |
--password, --password-env, --password-file | Lösenord för uppgiftsfilen. |
--state, --status-file | Runtime status JSON-sökväg. |
--name | Uppgiftsnamn för schedule add. |
--frequency, --every | Uppgiftsfrekvens. |
--start, --start-at | Lokalt startdatum/tid. |
--delete-source-contents | Radera originalmappens innehåll efter lyckad schemalagd körning. |
--poll-seconds | Arbetarens pollingintervall för schedule run. |
--language eller --lang väljer konsolspråk; --quiet döljer vanlig förloppsutmatning, men fel skrivs fortfarande till standardfel. Ctrl+C begär avbrott och returnerar 1. Kod 2 betyder ogiltig kommandosyntax och kod 3 en skapandefunktion som saknas i aktuell utgåva. Kod 0 returneras även när destruktionslösenordet avsiktligt aktiveras och bevisar därför inte i sig att filer extraherats. Kontrollera förväntad utdata innan automatiseringen fortsätter.
Avslutningskoder och övervakning
schedule run-once kan returnera noll trots misslyckade jobb; schedule status även utan status. Kontrollera savedAt, lastSuccessAt och lastError; [OK] kan bara betyda Ready. Monitorn förutsätter dagliga kopior, kontroller var 30:e sekund och framgång inom 26 timmar. Anpassa gränserna. JSON-tillstånd är numeriska; --quiet döljer normal utmatning från lyckade 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 -> FailedFelsökning
Varför får jag avslutningskod 3?
Den aktuella utgåvan tillåter inte den begärda funktionen: för många lager, kompression, krypteringspadding, uppdelning, schemaläggare eller en starkare algoritm.
Varför misslyckas extraktionen med ett autentiseringstag-fel?
Huvudlösenordet, lagernyckeln, lagerordningen eller containerfilen är fel. För uppdelade containrar, kontrollera även att varje del finns i samma mapp.
Varför kör schemaläggaren inte efter att jag stänger konsolen?
schedule run är arbetsprocessen. Håll den öppen, eller starta den från Windows Schemaläggaren eller en service-wrapper.
Varför misslyckas schedule add omedelbart?
Schemaläggaren validerar licens, källmapp, utmatningsväg, algoritmer, lösenord och tillgängligt diskutrymme innan uppgiften sparas.
Kan jag lagra schemaläggarlösenord inuti .lbxjobs-filen?
Ja. .lbxjobs-filen är krypterad med schemaläggarens fil-lösenord och lagrar fullständig uppgiftsmetadata, inklusive krypteringslösenord och lagernycklar.
Vad händer om en schemalagd körning överlappar föregående körning?
Det nya evenemanget hoppas över, uppgiften rapporterar ett misslyckat status med förklaring, och framtida körningar fortsätter efter att den aktiva körningen avslutats.
Hur undviker jag hemligheter i shellhistoriken?
Använd --master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env, och --password-file.