LockBox CLI-documentatie
LockBox CLI is de Engelstalige automatiseringsversie voor gescripte codering, extractie, activatie, geplande versleutelde back-ups en CI/CD-workflows. Het gebruikt hetzelfde apparaatgebonden licentiemodel als de desktopapp.
Snel aan de slag
Plaats LockBox.Cli.exe in een map die is opgenomen in PATH,
of roep het aan via het volledige pad. De --cli marker wordt geaccepteerd voor compatibiliteit
maar is niet vereist in de alleen-CLI build.
.\LockBox.Cli.exe --help
.\LockBox.Cli.exe device-id
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen --count 3
Minimale workflow voor aanmaken en openen:
$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 gebruikt dezelfde opdrachten met schuine-streep paden en een binaire zonder het .exe achtervoegsel:
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_L1CLI installeren en controleren
Pak het ZIP-bestand voor uw besturingssysteem en processor uit. .NET is inbegrepen. Vergelijk de hash met SHA256SUMS.txt. Plaats de CLI op het hieronder vermelde absolute pad en controleer hulp en licentie onder het back-upaccount.
Linux heeft ook native distributiebibliotheken nodig, waaronder ICU en OpenSSL; het meegeleverde .NET bevat die niet. In Windows moet het geldende uitvoeringsbeleid PowerShell-scripts toestaan.
.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.zipMappen, paden en opslagruimte
Pas de paden aan. De bronmap mag niet leeg zijn en de container moet erbuiten staan. Dezelfde uitvoernaam vervangt de vorige container en delen. Reserveer tijdelijke ruimte naast de container en een bronkopie voor geplande taken. Grootte-eenheden gebruiken 1024; opvulling voegt bytes toe.
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.txtBestanden met geheimen voorbereiden
Genereer geheimen eenmaal, bewaar een beveiligde kopie en beperk bestandstoegang. De voorbeelden vervangen geen bestaande sleutels. UTF-8-bestanden behouden spaties; afsluitende regeleinden worden verwijderd. Bewaar de oorspronkelijke sleutels voor oudere back-ups.
$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.txtActivatie en licentiestatus
De licentiesleutel is gebonden aan de apparaat-ID die door dezelfde CLI-build wordt afgedrukt. Als een licentie wordt gekopieerd naar een andere pc, weigert LockBox deze en valt terug op Free.
Windows controleert de bestaande locaties van de LockBox-applicatiegegevens. Linux slaat activatie op in
$XDG_CONFIG_HOME/lockbox/.lockbox.license, daarna
~/.config/lockbox/.lockbox.license, met ~/.lockbox/.lockbox.license
als alternatief.
Apparaat-ID opvragen
.\LockBox.Cli.exe device-id
Controleer huidige editie
.\LockBox.Cli.exe license
Activeren vanuit een licentiebestand
.\LockBox.Cli.exe activate --license-file "C:\Licenses\lockbox-license.txt"
Activeren via een omgevingsvariabele
$env:LBX_LICENSE = "LBX-LIC-..."
.\LockBox.Cli.exe activate --license-env LBX_LICENSE
Inline activeren
Inline activering werkt, maar kan lekken via shellgeschiedenis of proceslogboeken.
.\LockBox.Cli.exe activate --license "LBX-LIC-..."
Linux-activatie
export LBX_LICENSE="LBX-LIC-..."
./LockBox.Cli activate --license-env LBX_LICENSE
./LockBox.Cli licenseGeheimenbeheer
Gebruik bij voorkeur omgevingsvariabelen of bestanden. Inline geheimen zijn alleen nuttig voor testen. Hoofdwachtwoorden en laag-sleutels moeten worden bewaard: zonder deze kan de container niet worden geopend.
| Doel | Direct | Omgeving | Bestand |
|---|---|---|---|
| Hoofdwachtwoord | --master value | --master-env ENV | --master-file path |
| Laag-sleutel aanmaken | --layer ALG=KEY | --layer-env ALG=ENV | --layer-file ALG=FILE |
| Laag-sleutel openen | --key value | --key-env ENV | --key-file path |
| Scheduler-bestandwachtwoord | --password value | --password-env ENV | --password-file path |
| Container vernietigingswachtwoord | --destruction-password value | --destruction-password-env ENV | --destruction-password-file path |
| Licentiesleutel | --license value | --license-env ENV | --license-file path |
Bestand-gebaseerde geheimen
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.txtAlgoritmen en sleutelgeneratie
Gebruik algorithms om alle ondersteunde profielen en minimale edities te zien.
Gebruik keygen voor laag-sleutels.
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen
.\LockBox.Cli.exe keygen --count 9
.\LockBox.Cli.exe generate-keys -n 20
Ondersteunde commando-afkortingen:
algorithms
list-algorithms
profiles
keygen
generate-key
generate-keysContainers maken
create pakt een bronmap, past optionele compressie en opvulling toe,
versleutelt de payload via één of meerdere lagen en schrijft een .lbx container.
Vereiste opties
--sourceof-s: bronmap.--outputof-o: uitvoer.lbxpad.--master,--master-envof--master-file.- Ten minste één laag:
--layer,--layer-envof--layer-file.
Minimale AES-container
.\LockBox.Cli.exe create `
-s "D:\Data" `
-o "E:\Backups\data.lbx" `
--master-env LBX_MASTER `
--layer-env AES-128-GCM=LBX_L1
Gecomprimeerde container
.\LockBox.Cli.exe create `
--source "D:\Exports" `
--output "E:\Backups\exports.lbx" `
--master-env LBX_MASTER `
--layer-env AES-256-GCM=LBX_L1 `
--compress
Crypto-opvulling
.\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
Verdeel container in delen
.\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
Het eerste deel behoudt .lbx. Extra delen gebruiken
.lbx1, .lbx2, enzovoort. Bewaar alle delen in dezelfde map.
Voorbeeld van negen-lagen 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
Alternatieve algoritme-/sleutelsyntaxis
.\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
Verwijder bron na succesvolle handmatige creatie
.\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 verwijdert de bronmap pas nadat de container succesvol is aangemaakt.
Planner heeft een andere optie: --delete-source-contents.
Container vernietigingswachtwoord
Max-editie kan een afzonderlijk vernietigingswachtwoord aan een container toevoegen. Als dat wachtwoord later wordt ingevoerd als het hoofdwachtwoord, overschrijft LockBox onmiddellijk de container zonder bevestiging. Dit is bedoeld voor scenario's met dwang-druk. Houd het gescheiden van het echte hoofdwachtwoord.
De opdracht controleert de vrije schijfruimte, versleutelt de originele containergegevens met een nieuw willekeurig
geheim en AES-256-GCM in een tijdelijk bestand, normaliseert het resultaat naar de exacte originele grootte,
vervangt het originele bestand en vergeet het willekeurige geheim. Voor gesplitste containers wordt elk
.lbx, .lbx1, .lbx2 deel in dezelfde map vervangen
terwijl de originele deelgroottes behouden blijven.
Aanmaken met een vernietigingswachtwoord
$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
Vernietiging activeren zonder laagsleutels
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_DESTROY
Linux-activering
export LBX_DESTROY="pressure-password"
./LockBox.Cli open \
--container "/backup/data.lbx" \
--output "/restore" \
--master-env LBX_DESTROY
Na succesvolle vernietiging is de container geen geldig LockBox-bestand meer. De CLI geeft
exitcode 0 omdat de gevraagde vernietigingsactie succesvol is voltooid.
Containers openen
open extraheert een container naar de uitvoermap. Voor normale extractie moeten laagsleutels
in dezelfde volgorde worden doorgegeven als tijdens de creatie. Voor een workflow met vernietigingswachtwoord zijn alleen
het contPad, uitvoerpad en het vernietigingswachtwoord als hoofdwachtwoord vereist.
Een eendelige container openen
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Een gesplitste container openen
.\LockBox.Cli.exe open `
-c "E:\Backups\data.lbx" `
-o "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Een meerlagige container openen
.\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
Aliassen
open
decrypt
extractEen back-up door herstel controleren
Maak een klein report.csv-bestand als test. Pak uit naar een nieuwe map; de bronmapnaam blijft daarbinnen behouden. Bewaar alle delen samen en vergelijk met ongewijzigde bronnen. Uitpakken vereist beschrijfbare tijdelijke ruimte naast de container. Bescherm ook herstelde onversleutelde bestanden.
$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"Planner
Planner-commando's zijn beschikbaar in de Max-editie. Ze slaan volledige taakmetadata op
in een versleuteld .lbxjobs bestand, inclusief bronpad, uitvoerpad,
wachtwoorden, vernietigingswachtwoord, laagsleutels, compressie, padding, splitsing en
instelling voor het verwijderen van broninhoud.
Geplande taken draaien alleen terwijl LockBox.Cli.exe schedule run actief is.
Gebruik Windows Taakplanner, Linux systemd, cron, een service-wrapper of een langdurige console
sessie als u wilt dat de worker automatisch start na een herstart.
Frequentiewaarden
once
30m
hourly
2h
3h
6h
9h
12h
18h
daily
2d
3d
5d
weekly
2w
monthly
2mo
3mo
6mo
9mo
yearly
Voeg een dagelijkse versleutelde back-uptaak toe
$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
Voeg een taak toe die de inhoud van de bronmap verwijdert na succes
.\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
Voeg een maandelijkse archiefopslag toe met padding en gesplitste delen
.\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
Lijst van opgeslagen taken
.\LockBox.Cli.exe schedule list `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD
Start de planner-worker
.\LockBox.Cli.exe schedule run `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json" `
--poll-seconds 30
Voer de verschuldigde taken één keer uit en sluit af
.\LockBox.Cli.exe schedule run-once `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json"
Toon de laatste runtime-status
.\LockBox.Cli.exe schedule status --state "E:\Backups\jobs.status.json"
Statusmarkeringen zijn [OK], [RUNNING], en [FAILED].
Een mislukte taak bevat de reden en vertelt de gebruiker contact op te nemen met de ondersteuning
als het probleem zich herhaalt.
JSON-scripts
Gebruik --script wanneer een workflow meerdere stappen bevat. De script-runner ondersteunt
create, open, keygen, algorithms,
device-id, license, en activate.
Aanmaken en openen in één script
{
"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"
Doorgaan na een mislukte stap
{
"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" }
]
}
]
}
Activeren vanuit script
{
"commands": [
{
"command": "activate",
"licenseKeyFile": "C:\\Licenses\\lockbox-license.txt"
},
{ "command": "license" }
]
}JSON-velden en uitvoeringsregels
De tabel koppelt create-velden en open-sleutellijsten aan CLI-opties. Relatieve paden beginnen in de werkmap van het proces; variabelen en datums worden niet vervangen. Gebruik één geheimbron per veld. open leest keys, daarna keyEnvs en keyFiles. Gebruik bij voorkeur stopOnError: true; bij false kan later succes een eerdere fout verbergen. Planneropdrachten worden niet ondersteund in JSON-scripts.
{
"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 | Map om te verpakken en te versleutelen. |
output / outputContainerPath | --output | Uitvoer .lbx pad. |
masterPassword | --master | Inline hoofdwachtwoord. |
masterPasswordEnv | --master-env | Lees hoofdwachtwoord uit omgevingsvariabele. |
masterPasswordFile | --master-file | Lees hoofdwachtwoord uit UTF-8 tekstbestand. |
layers[].algorithm + layers[].key | --layer | Voeg ALGORITHM=KEY toe. |
layers[].algorithm + layers[].keyEnv | --layer-env | Voeg ALGORITHM=ENV toe. |
layers[].algorithm + layers[].keyFile | --layer-file | Voeg ALGORITHM=FILE toe. |
compression / compress | --compress | Comprimering inschakelen. |
padding | --padding | Versleutelde willekeurige opvulling toevoegen. Eenheden: B, KB, MB, GB, TB. |
paddingBytes | --padding-bytes | Opvulgrootte in ruwe bytes. |
split / splitSize | --split | Splits uitvoer in .lbx, .lbx1, .lbx2. |
splitPartSizeBytes | --split-bytes | Grootte van de split-deel in ruwe bytes. |
destructionPassword | --destruction-password | Max-only inline vernietigingswachtwoord. Het later invoeren als hoofdwachtwoord overschrijft de container onmiddellijk. |
destructionPasswordEnv | --destruction-password-env | Lees het Max-only vernietigingswachtwoord uit een omgevingsvariabele. |
destructionPasswordFile | --destruction-password-file | Lees het Max-only vernietigingswachtwoord uit een UTF-8 tekstbestand. |
deleteSource / deleteSourceFolderAfterSuccess | --delete-source | Verwijder bronmap na succesvolle handmatige aanmaak. |
container / containerPath | --container | Bestaande .lbx container. |
keys[] | --key | Inline laag-sleutel in de oorspronkelijke volgorde. |
keyEnvs[] | --key-env | Laag-sleutel van omgevingsvariabele. |
keyFiles[] | --key-file | Laag-sleutel uit UTF-8-tekstbestand. |
Automatiseringsrecepten
Versleutelde database dump-back-up
$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
CI-artifactbescherming
.\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
Veilige partneroverdracht
.\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
Langetermijnarchief
.\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
Batchbestandvoorbeeld
@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: meerdere mappen kopiëren
Sla het script op het aangegeven pad op. Het maakt per bron een uniek benoemde container en logbestand, stopt bij fouten en bewaart de CLI-afsluitcode. AES-128-GCM werkt met Free; compressie en splitsen vereisen Pro of 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: onbeheerde back-ups
Sla het Bash-script op met LF-regeleinden. Bereid CLI en geheimen op de aangegeven paden voor en geef bronmappen als argumenten door. Elke uitvoering krijgt een eigen map. Fouten leveren een log en een niet-nulcode op; bronbestanden blijven behouden.
/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/reportsPlannen via het besturingssysteem
Deze taken starten bovenstaande scripts; dit gebruik van create vereist geen Max. De Windows-registratie werkt alleen bij een aangemelde gebruiker; stel zo nodig uitvoering zonder aanmelding in Taakplanner in. Voeg cron toe aan de crontab van het back-upaccount en controleer flock. Beide voorbeelden starten om 02:00 lokale tijd en voorkomen overlappende geplande uitvoeringen. Controleer rechten en test handmatig.
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: de planner beheren
Maak het serviceaccount lockbox met benodigde rechten, activeer Max voor dat account en bereid het aparte UTF-8-wachtwoordbestand jobs.txt voor. add voegt toe en werkt niet bij: gebruik het eenmaal per taak. Gebruik één proces per takenbestand en herstart na wijzigingen. Status-JSON herstelt geen geschiedenis: verlopen herhalingen worden overgeslagen, een verlopen once-taak kan opnieuw lopen. Gebruik create voor periodieke OS-starts in plaats van herhaald run-once. De planner hergebruikt de uitvoernaam.
/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.jsonComandoreferentie
| Commando | Doel | Alias |
|---|---|---|
help | Toon console-help. | --help, -h, ? |
device-id | Print PC-apparaat-ID voor licentie-uitgifte. | deviceid, machine-id |
license | Toon huidige editie en licentiepad. | license-status, status |
activate | Installeer een apparaatgebonden licentiesleutel. | activation |
algorithms | Lijst algoritmen en minimaal vereiste edities. | profiles, list-algorithms |
keygen | Genereer willekeurige sleutels. | generate-key, generate-keys |
create | Maak een versleutelde container. | encrypt |
open | Extraheer versleutelde container. | decrypt, extract |
schedule | Beheer en voer geplande taken uit. | scheduler, scheduled-tasks |
script | Voer JSON-automatiseringsbestand uit. | --script |
Maak opties aan
--source, -s | Map om te verpakken en te versleutelen. |
--output, -o | Uitvoer .lbx pad. |
--master | Inline hoofdwachtwoord. |
--master-env | Lees hoofdwachtwoord uit omgevingsvariabele. |
--master-file | Lees hoofdwachtwoord uit UTF-8 tekstbestand. |
--layer | Voeg ALGORITHM=KEY toe. |
--layer-env | Voeg ALGORITHM=ENV toe. |
--layer-file | Voeg ALGORITHM=FILE toe. |
--algorithm, -a | Alternatieve algoritmevorm gekoppeld aan --key, --key-env, of --key-file. |
--compress | Comprimering inschakelen. |
--no-compress | Comprimering uitschakelen als deze eerder is ingesteld. |
--padding | Versleutelde willekeurige opvulling toevoegen. Eenheden: B, KB, MB, GB, TB. |
--padding-bytes | Opvulgrootte in ruwe bytes. |
--split | Splits uitvoer in .lbx, .lbx1, .lbx2. |
--split-bytes | Grootte van de split-deel in ruwe bytes. |
--no-split | Splitsen uitschakelen als dit eerder is ingesteld. |
--destruction-password | Max-only inline vernietigingswachtwoord. Het later invoeren als hoofdwachtwoord overschrijft de container onmiddellijk. |
--destruction-password-env | Lees het Max-only vernietigingswachtwoord uit een omgevingsvariabele. |
--destruction-password-file | Lees het Max-only vernietigingswachtwoord uit een UTF-8 tekstbestand. |
--delete-source | Verwijder bronmap na succesvolle handmatige aanmaak. |
Open opties
--container, -c | Bestaande .lbx container. |
--output, -o | Uittrekmappen. |
--master, --master-env, --master-file | Bron van het hoofdwachtwoord. |
--key, -k | Inline laag-sleutel in de oorspronkelijke volgorde. |
--key-env | Laag-sleutel van omgevingsvariabele. |
--key-file | Laag-sleutel uit UTF-8-tekstbestand. |
— | Toegestaan voor workflows met vernietigingswachtwoord. Normale extractie mislukt na het lezen van metadata als vereiste sleutels ontbreken. |
Scheduler-opties
schedule add | Voeg een taak toe aan versleutelde .lbxjobs. |
schedule list | Toon opgeslagen taken. |
schedule run | Voer langdurige worker uit. |
schedule run-once | Voer openstaande taken één keer uit en sluit af. |
schedule status | Lees laatste runtime-status JSON. |
--tasks, --file | Versleuteld taakbestandspad. |
--password, --password-env, --password-file | Wachtwoord voor taakbestand. |
--state, --status-file | Runtime-status JSON pad. |
--name | Taaknaam voor schedule add. |
--frequency, --every | Taakfrequentie. |
--start, --start-at | Lokaal startdatum/tijd. |
--delete-source-contents | Verwijder originele bronmapinhoud na succesvolle geplande uitvoering. |
--poll-seconds | Worker polling-interval voor schedule run. |
Met --language of --lang kiest u de consoletaal; --quiet verbergt gewone voortgangsmeldingen, maar fouten blijven op de standaardfoutuitvoer verschijnen. Ctrl+C vraagt annulering aan en retourneert 1. Code 2 betekent ongeldige opdrachtsyntaxis en code 3 een aanmaakfunctie die de huidige editie niet ondersteunt. Ook het bewust activeren van het vernietigingswachtwoord retourneert 0; die code bewijst dus niet dat bestanden zijn uitgepakt. Controleer de verwachte uitvoer voordat u volgende automatiseringsstappen uitvoert.
Afsluitcodes en bewaking
schedule run-once kan nul teruggeven ondanks mislukte taken; schedule status ook zonder status. Controleer savedAt, lastSuccessAt en lastError; [OK] kan alleen Ready betekenen. Deze monitor verwacht dagelijkse back-ups, controles elke 30 seconden en succes binnen 26 uur. Pas de drempels aan. JSON-statussen zijn numeriek; --quiet onderdrukt gewone succesuitvoer van 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 -> FailedProbleemoplossing
Waarom krijg ik exitcode 3?
De huidige editie staat de gevraagde functie niet toe: te veel lagen, compressie, crypto-padding, splitsing, planner, of een sterker algoritme.
Waarom mislukt extractie met een authentication tag-fout?
Het hoofdwachtwoord, lagsleutel, laagsvolgorde of containerbestand is verkeerd. Voor gesplitste containers, verifieer ook dat elk deel aanwezig is in dezelfde map.
Waarom draait de planner niet nadat ik de console sluit?
schedule run is het werkproces. Houd het geopend, of start het vanuit Windows Taakplanner of een service-wrapper.
Waarom faalt schedule add onmiddellijk?
De planner valideert licentie, bronmap, uitvoerpad, algoritmen, wachtwoorden en beschikbare schijfruimte voordat de taak wordt opgeslagen.
Kan ik planningswachtwoorden opslaan in het .lbxjobs-bestand?
Ja. Het .lbxjobs-bestand is versleuteld met het planningsbestand-wachtwoord en slaat volledige taakmetadata op, inclusief encryptiewachtwoorden en laagsleutels.
Wat gebeurt er als een geplande run overlapt met de vorige run?
Het nieuwe evenement wordt overgeslagen, de taak meldt een mislukte status met uitleg, en toekomstige runs gaan door nadat de actieve run is voltooid.
Hoe voorkom ik geheimen in de shellgeschiedenis?
Gebruik --master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env, en --password-file.