LockBox CLI-dokumentasjon
LockBox CLI er den engelskspråklige automatiseringsutgaven for skripting av kryptering, utpakking, aktivering, planlagte krypterte sikkerhetskopier og CI/CD-arbeidsflyter. Den bruker samme enhetsbundne lisensmodell som skrivebordsappen.
Kom i gang
Plasser LockBox.Cli.exe i en mappe inkludert i PATH,
eller kall det ved full bane. --cli-markøren godtas for kompatibilitet
men er ikke nødvendig i kun CLI-versjonen.
.\LockBox.Cli.exe --help
.\LockBox.Cli.exe device-id
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen --count 3
Minimal arbeidsflyt for opprettelse og åpning:
$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 bruker de samme kommandoene med skråstrekbaner og en binær uten .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_L1Installer og kontroller CLI
Pakk ut ZIP-filen for systemet og prosessoren din. .NET følger med. Sammenlign hashverdien med SHA256SUMS.txt. Plasser CLI på den absolutte stien nedenfor, og kontroller hjelp og lisens med sikkerhetskopieringskontoen.
Linux trenger også distribusjonens systembiblioteker, inkludert ICU og OpenSSL; medfølgende .NET leverer dem ikke. I Windows må gjeldende kjøringspolicy tillate 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.zipMapper, stier og plass
Tilpass stiene. Kildemappen må være ikke-tom, og beholderen må ligge utenfor. Samme målnavn erstatter forrige beholder og deler. Sett av midlertidig plass ved beholderen og en kildekopi for planlagte oppgaver. Størrelsesenheter bruker 1024; utfylling legger til 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.txtForbered filer med hemmeligheter
Generer hemmeligheter én gang, lagre en beskyttet kopi og begrens filtilgangen. Eksemplene nekter å erstatte eksisterende nøkler. UTF-8-filer beholder mellomrom, men fjerner avsluttende linjeskift. Bevar originalnøklene for eldre kopier.
$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 og lisensstatus
Lisensnøkkelen er knyttet til enhets-IDen som skrives ut av samme CLI-versjon. Hvis en lisens kopieres til en annen PC, avviser LockBox den og går tilbake til Gratis.
Windows sjekker de eksisterende LockBox-applikasjonsdataplasseringene. Linux lagrer aktivering i
$XDG_CONFIG_HOME/lockbox/.lockbox.license, så
~/.config/lockbox/.lockbox.license, med ~/.lockbox/.lockbox.license som reserve.
Få enhets-ID
.\LockBox.Cli.exe device-id
Sjekk nåværende utgave
.\LockBox.Cli.exe license
Aktiver fra en lisensfil
.\LockBox.Cli.exe activate --license-file "C:\Licenses\lockbox-license.txt"
Aktiver fra en miljøvariabel
$env:LBX_LICENSE = "LBX-LIC-..."
.\LockBox.Cli.exe activate --license-env LBX_LICENSE
Inline-aktivering
Inline-aktivering fungerer, men det kan lekke gjennom shell-historikk eller prosesslogger.
.\LockBox.Cli.exe activate --license "LBX-LIC-..."
Linux-aktivering
export LBX_LICENSE="LBX-LIC-..."
./LockBox.Cli activate --license-env LBX_LICENSE
./LockBox.Cli licenseHåndtering av hemmeligheter
Foretrekk miljøvariabler eller filer. Inline-hemmeligheter er kun nyttige for testing. Hovedpassord og lagnøkler må bevares: uten dem kan ikke containeren åpnes.
| Formål | Direkte | Miljø | Fil |
|---|---|---|---|
| Hovedpassord | --master value | --master-env ENV | --master-file path |
| Opprett lagnøkkel | --layer ALG=KEY | --layer-env ALG=ENV | --layer-file ALG=FILE |
| Åpne lagnøkkel | --key value | --key-env ENV | --key-file path |
| Passord for planleggerfil | --password value | --password-env ENV | --password-file path |
| Passord for ødeleggelse av container | --destruction-password value | --destruction-password-env ENV | --destruction-password-file path |
| Lisensnøkkel | --license value | --license-env ENV | --license-file path |
Fil-baserte hemmeligheter
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 og nøkkelgenerering
Bruk algorithms for å se alle støttede profiler og minimumsutgaver.
Bruk keygen for lag-nøkler.
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen
.\LockBox.Cli.exe keygen --count 9
.\LockBox.Cli.exe generate-keys -n 20
Støttede kommandoaliaser:
algorithms
list-algorithms
profiles
keygen
generate-key
generate-keysOpprett containere
create pakker en kilde-map, bruker valgfri komprimering og utfylling,
krypterer nyttelasten gjennom ett eller flere lag, og skriver en .lbx container.
Påkrevde alternativer
--sourceeller-s: kilde-mappe.--outputeller-o: utdata.lbx-bane.--master,--master-env, eller--master-file.- Minst ett lag:
--layer,--layer-env, eller--layer-file.
Minimal 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
Komprimert 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
Krypto-fylling
.\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
Del container i deler
.\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ørste delen beholder .lbx. Ytterligere deler bruker
.lbx1, .lbx2, og så videre. Hold alle deler i samme mappe.
Ni-lags Max-eksempel
$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 algoritme/nøkkel-syntaks
.\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
Slett kilde etter vellykket manuell opprettelse
.\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 sletter kun kilde-mappen etter at containeren er opprettet vellykket.
Planleggeren har et annet alternativ: --delete-source-contents.
Containernedbrytingspassord
Max-utgaven kan legge til et separat nedbrytingspassord for en container. Hvis dette passordet senere tastes inn som hovedpassord, overskriver LockBox umiddelbart containeren uten bekreftelse. Dette er ment for scenarier med tvangspress. Hold det separat fra det virkelige hovedpassordet.
Kommandoen verifiserer ledig diskplass, krypterer de opprinnelige containerdataene med en ny tilfeldig hemmelighet og AES-256-GCM til en midlertidig fil, normaliserer resultatet til nøyaktig samme størrelse som originalen, erstatter den opprinnelige filen, og glemmer den tilfeldige hemmeligheten. For delte containere blir hver .lbx, .lbx1, .lbx2 del i samme mappe erstattet samtidig som de opprinnelige delstørrelsene bevares.
Opprett med et nedbrytingspassord
$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
Utløs nedbryting uten lagernøkler
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_DESTROY
Linux-utløser
export LBX_DESTROY="pressure-password"
./LockBox.Cli open \
--container "/backup/data.lbx" \
--output "/restore" \
--master-env LBX_DESTROY
Etter vellykket nedbryting er containeren ikke lenger en gyldig LockBox-fil. CLI returnerer avslutningskode 0 fordi den forespurte nedbrytingshandlingen ble fullført.
Åpne containere
open pakker ut en container til utdata-mappen. For normal utpakking må lagernøklene overleveres i samme rekkefølge som under opprettelsen. For en arbeidsflyt med nedbrytingspassord kreves kun containersti, utdata-sti, og nedbrytingspassord som hovedpassord.
Åpne en ett-lags container
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Åpne en delt container
.\LockBox.Cli.exe open `
-c "E:\Backups\data.lbx" `
-o "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Åpne en fler-lags container
.\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
extractKontroller ved gjenoppretting
Lag en liten report.csv for testen. Pakk ut til en ny mappe; kildemappens navn bevares inni. Hold alle deler samlet og sammenlign med uendrede kilder. Utpakking trenger skrivbar midlertidig plass ved beholderen. Beskytt også gjenopprettede ukrypterte 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"Planlegger
Planleggerkommandoer er tilgjengelige i Max-utgaven. De lagrer full oppgaveinformasjon
i en kryptert .lbxjobs-fil, inkludert kildebane, utdatabane,
passord, destruksjonspassord, lagernøkler, komprimering, utfylling, splitting, og
innstilling for sletting av kildeinnhold.
Planlagte jobber kjører bare mens LockBox.Cli.exe schedule run kjører.
Bruk Windows Oppgaveplanlegger, Linux systemd, cron, en tjenestepakke, eller en langvarig konsoll
økt hvis du trenger at arbeideren starter automatisk etter omstart.
Frekvensverdier
once
30m
hourly
2h
3h
6h
9h
12h
18h
daily
2d
3d
5d
weekly
2w
monthly
2mo
3mo
6mo
9mo
yearly
Legg til en daglig kryptert sikkerhetskopioppgave
$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
Legg til en oppgave som sletter innholdet i kilde-mappen etter suksess
.\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
Legg til et månedlig arkiv med utfylling og delte deler
.\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
Liste over lagrede oppgaver
.\LockBox.Cli.exe schedule list `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD
Kjør planleggerarbeideren
.\LockBox.Cli.exe schedule run `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json" `
--poll-seconds 30
Kjør forfalte oppgaver én gang og avslutt
.\LockBox.Cli.exe schedule run-once `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json"
Vis siste kjøretidsstatus
.\LockBox.Cli.exe schedule status --state "E:\Backups\jobs.status.json"
Statusmarkører er [OK], [RUNNING], og [FAILED].
En mislykket oppgave inkluderer årsaken og forteller brukeren å kontakte support hvis problemet gjentar seg.
JSON-skript
Bruk --script når en arbeidsflyt har flere trinn. Skriptkjøreren støtter
create, open, keygen, algorithms,
device-id, license, og activate.
Opprett og åpne 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"
Fortsett etter et mislykket trinn
{
"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" }
]
}
]
}
Aktiver fra skript
{
"commands": [
{
"command": "activate",
"licenseKeyFile": "C:\\Licenses\\lockbox-license.txt"
},
{ "command": "license" }
]
}JSON-felt og kjøreregler
Tabellen kobler create-felt og open-nøkkellister til CLI-valg. Relative stier starter i prosessens arbeidsmappe; variabler og datoer erstattes ikke. Bruk én hemmelighetskilde per felt. open leser keys, så keyEnvs og keyFiles. Foretrekk stopOnError: true; med false kan senere suksess skjule tidligere feil. JSON-skript støtter ikke planleggerkommandoer.
{
"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 | Mappe som skal pakkes og krypteres. |
output / outputContainerPath | --output | Utdata .lbx-bane. |
masterPassword | --master | Direkte administrasjonspassord. |
masterPasswordEnv | --master-env | Les administrasjonspassord fra miljøvariabel. |
masterPasswordFile | --master-file | Les administrasjonspassord fra UTF-8 tekstfil. |
layers[].algorithm + layers[].key | --layer | Legg til ALGORITHM=KEY. |
layers[].algorithm + layers[].keyEnv | --layer-env | Legg til ALGORITHM=ENV. |
layers[].algorithm + layers[].keyFile | --layer-file | Legg til ALGORITHM=FILE. |
compression / compress | --compress | Aktiver komprimering. |
padding | --padding | Legg til kryptert tilfeldig utfylling. Enheter: B, KB, MB, GB, TB. |
paddingBytes | --padding-bytes | Utfyllingsstørrelse i rå byte. |
split / splitSize | --split | Del utdata i .lbx, .lbx1, .lbx2. |
splitPartSizeBytes | --split-bytes | Del delstørrelse i rå byte. |
destructionPassword | --destruction-password | Kun maks inline destruksjonspassord. Å skrive det senere som administrasjonspassord overskriver beholderen umiddelbart. |
destructionPasswordEnv | --destruction-password-env | Les kun maks destruksjonspassord fra miljøvariabel. |
destructionPasswordFile | --destruction-password-file | Les kun maks destruksjonspassord fra UTF-8 tekstfil. |
deleteSource / deleteSourceFolderAfterSuccess | --delete-source | Slett kilde-mappe etter vellykket manuell opprettelse. |
container / containerPath | --container | Eksisterende .lbx-beholder. |
keys[] | --key | Inline-lagernøkkel i original rekkefølge. |
keyEnvs[] | --key-env | Lagernøkkel fra miljøvariabel. |
keyFiles[] | --key-file | Lagernøkkel fra UTF-8 tekstfil. |
Automatiseringsoppskrifter
Backup av kryptert databaseuttrekk
$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-artifaktbeskyttelse
.\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
Sikker overføring til partner
.\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
Langtidsarkiv
.\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
Batchfil-eksempel
@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: kopier flere mapper
Lagre skriptet på angitt sti. Det oppretter en unikt navngitt beholder og logg per kilde, stopper ved feil og bevarer CLI-avslutningskoden. AES-128-GCM fungerer med Free; komprimering og oppdeling krever 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: ubetjente sikkerhetskopier
Lagre Bash-skriptet med LF-linjeslutt. Forbered CLI og hemmeligheter på angitte stier, og send kildemapper som argumenter. Hver kjøring får egen mappe. Feil etterlater en logg og en kode ulik null; kildene bevares.
/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/reportsPlanlegg med operativsystemet
Oppgavene starter skriptene ovenfor; denne bruken av create krever ikke Max. Windows-registreringen kjører bare med innlogget bruker; sett opp kjøring uten innlogging i Oppgaveplanlegging ved behov. Legg cron i backupkontoens crontab etter å ha kontrollert flock. Begge eksemplene kjører kl. 02:00 lokal tid og hindrer overlappende planlagte kjøringer. Kontroller rettigheter og test manuelt.
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: drift av planleggeren
Opprett tjenestekontoen lockbox med nødvendige rettigheter, aktiver Max for kontoen og forbered den separate UTF-8-passordfilen jobs.txt. add legger til, oppdaterer ikke: bruk én gang per oppgave. Kjør én prosess per oppgavefil og start på nytt etter endringer. Status-JSON gjenoppretter ikke historikk: forsinkede gjentakelser hoppes over, en forsinket once-oppgave kan kjøre igjen. Bruk create for periodiske OS-starter i stedet for gjentatt run-once. Planleggeren gjenbruker målnavnet.
/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.jsonKommandooversikt
| Kommando | Formål | Alias |
|---|---|---|
help | Vis konsollhjelp. | --help, -h, ? |
device-id | Skriv ut PC-enhets-ID for lisensutstedelse. | deviceid, machine-id |
license | Vis gjeldende utgave og lisensbane. | license-status, status |
activate | Installer en enhetsbundet lisensnøkkel. | activation |
algorithms | Liste over algoritmer og minimumsutgaver. | profiles, list-algorithms |
keygen | Generer tilfeldige nøkler. | generate-key, generate-keys |
create | Opprett kryptert beholder. | encrypt |
open | Ekstraher kryptert beholder. | decrypt, extract |
schedule | Administrer og kjør planlagte oppgaver. | scheduler, scheduled-tasks |
script | Kjør JSON-automatiseringsfil. | --script |
Opprett alternativer
--source, -s | Mappe som skal pakkes og krypteres. |
--output, -o | Utdata .lbx-bane. |
--master | Direkte administrasjonspassord. |
--master-env | Les administrasjonspassord fra miljøvariabel. |
--master-file | Les administrasjonspassord fra UTF-8 tekstfil. |
--layer | Legg til ALGORITHM=KEY. |
--layer-env | Legg til ALGORITHM=ENV. |
--layer-file | Legg til ALGORITHM=FILE. |
--algorithm, -a | Alternativ algoritmeform parret med --key, --key-env eller --key-file. |
--compress | Aktiver komprimering. |
--no-compress | Deaktiver komprimering hvis satt tidligere. |
--padding | Legg til kryptert tilfeldig utfylling. Enheter: B, KB, MB, GB, TB. |
--padding-bytes | Utfyllingsstørrelse i rå byte. |
--split | Del utdata i .lbx, .lbx1, .lbx2. |
--split-bytes | Del delstørrelse i rå byte. |
--no-split | Deaktiver splitting hvis satt tidligere. |
--destruction-password | Kun maks inline destruksjonspassord. Å skrive det senere som administrasjonspassord overskriver beholderen umiddelbart. |
--destruction-password-env | Les kun maks destruksjonspassord fra miljøvariabel. |
--destruction-password-file | Les kun maks destruksjonspassord fra UTF-8 tekstfil. |
--delete-source | Slett kilde-mappe etter vellykket manuell opprettelse. |
Åpne alternativer
--container, -c | Eksisterende .lbx-beholder. |
--output, -o | Utpakningsmappe. |
--master, --master-env, --master-file | Kilde for hovedpassord. |
--key, -k | Inline-lagernøkkel i original rekkefølge. |
--key-env | Lagernøkkel fra miljøvariabel. |
--key-file | Lagernøkkel fra UTF-8 tekstfil. |
— | Tillatt for arbeidsflyter med destruksjonspassord. Vanlig utpakking mislykkes etter metadata-lesing hvis nødvendige nøkler mangler. |
Planleggeralternativer
schedule add | Legg til en oppgave i kryptert .lbxjobs. |
schedule list | Vis lagrede oppgaver. |
schedule run | Kjør langvarig arbeidsprosess. |
schedule run-once | Kjør oppgaver som forfaller én gang og avslutt. |
schedule status | Les siste runtime status JSON. |
--tasks, --file | Kryptert oppgavefilbane. |
--password, --password-env, --password-file | Passord for oppgavefil. |
--state, --status-file | Runtime status JSON-bane. |
--name | Oppgavenavn for schedule add. |
--frequency, --every | Oppgavefrekvens. |
--start, --start-at | Lokalt startdato/-tidspunkt. |
--delete-source-contents | Slett innholdet i den opprinnelige kildemappen etter vellykket planlagt kjøring. |
--poll-seconds | Polling-intervall for arbeidsprosess for schedule run. |
--language eller --lang velger konsollspråk; --quiet skjuler vanlig fremdrift, men feil skrives fortsatt til standard feilstrøm. Ctrl+C ber om avbrudd og returnerer 1. Kode 2 betyr ugyldig kommandosyntaks og kode 3 en opprettelsesfunksjon som ikke finnes i gjeldende utgave. Kode 0 returneres også når destruksjonspassordet bevisst utløses, og beviser derfor ikke alene at filer er pakket ut. Kontroller forventet resultat før videre automatisering.
Avslutningskoder og overvåking
schedule run-once kan returnere null selv med mislykkede oppgaver; schedule status også uten status. Kontroller savedAt, lastSuccessAt og lastError; [OK] kan bare bety Ready. Monitoren forventer daglige kopier, kontroll hvert 30. sekund og suksess innen 26 timer. Tilpass tersklene. JSON-tilstander er tall; --quiet skjuler vanlig utdata fra vellykkede 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 -> FailedFeilsøking
Hvorfor får jeg avslutningskode 3?
Den nåværende utgaven tillater ikke den forespurte funksjonen: for mange lag, komprimering, krypteringspadding, splitting, planlegger eller en sterkere algoritme.
Hvorfor mislykkes utpakking med en autentiseringstag-feil?
Hovedpassordet, lagetasten, lagrekkefølgen eller containerfilen er feil. For splittede containere, verifiser også at alle deler er tilstede i samme mappe.
Hvorfor kjører ikke planleggeren etter at jeg lukker konsollen?
schedule run er arbeidsprosess. Hold den åpen, eller start den fra Windows Oppgaveplanlegger eller en tjenestepakke.
Hvorfor mislykkes schedule add umiddelbart?
Planleggeren validerer lisens, kilde-mappe, utdata-path, algoritmer, passord og tilgjengelig diskplass før den lagrer oppgaven.
Kan jeg lagre planleggerpassord inne i .lbxjobs-filen?
Ja. .lbxjobs-filen er kryptert med planleggerfil-passordet og lagrer full oppgave-metadata, inkludert krypteringspassord og lagetaster.
Hva skjer hvis en planlagt kjøring overlapper den forrige kjøringen?
Den nye hendelsen blir hoppet over, oppgaven rapporterer status som mislykket med en forklaring, og fremtidige kjøringer fortsetter etter at aktiv kjøring er fullført.
Hvordan unngår jeg hemmeligheter i shell-historikk?
Bruk --master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env, og --password-file.