LockBox CLI dokumentation
LockBox CLI er automation-buildet på engelsk til scriptet kryptering, udpakning, aktivering, planlagte krypterede backups og CI/CD-workflows. Den bruger samme enhedsbaserede licensmodel som desktop-appen.
Kom godt i gang
Placer LockBox.Cli.exe i en mappe inkluderet i PATH,
eller kald det ved fuld sti. --cli markøren accepteres af hensyn til kompatibilitet
men er ikke nødvendig i CLI-only versionen.
.\LockBox.Cli.exe --help
.\LockBox.Cli.exe device-id
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen --count 3
Minimal oprettelses- og åbne workflow:
$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 bruger de samme kommandoer med skråstregs-stier og en binær uden .exe suffikset:
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 kontrollér CLI
Pak ZIP-filen til dit system og din processor ud. .NET er inkluderet. Sammenlign hashværdien med SHA256SUMS.txt. Placér CLI på den absolutte sti nedenfor, og kontrollér hjælp og licens med kontoen til sikkerhedskopiering.
Linux kræver også distributionens systembiblioteker, herunder ICU og OpenSSL; det medfølgende .NET leverer dem ikke. I Windows skal den gældende udførelsespolitik tillade PowerShell-scripts.
.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 plads
Tilpas stierne. Kildemappen må ikke være tom, og containeren skal ligge udenfor. Samme målnavn erstatter den tidligere container og dele. Reservér midlertidig plads ved containeren og en kildekopi til planlagte opgaver. Størrelsesenheder bygger på 1024; udfyldning tilføjer 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 hemmeligheder
Generér hemmeligheder én gang, gem en beskyttet kopi, og begræns filadgangen. Eksemplerne afviser at erstatte eksisterende nøgler. UTF-8-filer bevarer mellemrum, men fjerner afsluttende linjeskift. Bevar de oprindelige nøgler til ældre 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 licensstatus
Licensnøglen er bundet til enheds-ID'et, der printes af den samme CLI-version. Hvis en licens kopieres til en anden PC, afviser LockBox den og går tilbage til Gratis.
Windows tjekker de eksisterende LockBox applikationsdata-lokationer. Linux gemmer aktivering i
$XDG_CONFIG_HOME/lockbox/.lockbox.license, derefter
~/.config/lockbox/.lockbox.license, med ~/.lockbox/.lockbox.license
som fallback.
Få enheds-ID
.\LockBox.Cli.exe device-id
Tjek nuværende udgave
.\LockBox.Cli.exe license
Aktiver fra en licensfil
.\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
Aktiver inline
Inline aktivering fungerer, men det kan lække gennem shell-historik eller proceslogfiler.
.\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 af hemmeligheder
Foretræk miljøvariabler eller filer. Inline-hemmeligheder er kun nyttige til test. Hovedadgangskoder og lag-nøgler skal bevares: uden dem kan containeren ikke åbnes.
| Formål | Direkte | Miljø | Fil |
|---|---|---|---|
| Hovedadgangskode | --master value | --master-env ENV | --master-file path |
| Opret lag-nøgle | --layer ALG=KEY | --layer-env ALG=ENV | --layer-file ALG=FILE |
| Åbn lag-nøgle | --key value | --key-env ENV | --key-file path |
| Scheduler-fil-adgangskode | --password value | --password-env ENV | --password-file path |
| Container ødelæggelses-adgangskode | --destruction-password value | --destruction-password-env ENV | --destruction-password-file path |
| Licensnøgle | --license value | --license-env ENV | --license-file path |
Filbaserede hemmeligheder
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øglegenerering
Brug algorithms for at se alle understøttede profiler og minimumsudgaver. Brug keygen til lagnøgler.
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen
.\LockBox.Cli.exe keygen --count 9
.\LockBox.Cli.exe generate-keys -n 20Understøttede kommandaliaser:
algorithms
list-algorithms
profiles
keygen
generate-key
generate-keysOpret containere
create pakker en kilde-mappe, anvender valgfri kompression og padding,
krypterer payloaden gennem et eller flere lag, og skriver en .lbx container.
Påkrævede valgmuligheder
--sourceeller-s: kilde-mappe.--outputeller-o: output.lbxsti.--master,--master-env, eller--master-file.- Mindst ét 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
Komprimeret 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
Krypteringspadding
.\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
Opdel container i dele
.\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 del beholder .lbx. Yderligere dele bruger
.lbx1, .lbx2, og så videre. Opbevar alle dele 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øgle 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
Slet kilde efter vellykket manuel oprettelse
.\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 efter containeren er oprettet succesfuldt.
Scheduler har en anden valgmulighed: --delete-source-contents.
Containernes destruktionsadgangskode
Max-udgaven kan tilføje en separat destruktionsadgangskode til en container. Hvis denne adgangskode indtastes senere som hovedadgangskode, overskriver LockBox straks containeren uden bekræftelse. Dette er beregnet til scenarier med tvangspres. Hold den adskilt fra den rigtige hovedadgangskode.
Kommandoen kontrollerer ledig diskplads, krypterer de oprindelige containerdata med et nyt tilfældigt
hemmeligt nøgle og AES-256-GCM til en midlertidig fil, normaliserer resultatet til den nøjagtige oprindelige størrelse,
erstatter den oprindelige fil og glemmer den tilfældige hemmelighed. For delte containere, hver
.lbx, .lbx1, .lbx2 del i samme mappe erstattes
mens de oprindelige delstørrelser bevares.
Opret med en destruktionsadgangskode
$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
Udløs destruktion uden lag-nøgler
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_DESTROY
Linux-udløsning
export LBX_DESTROY="pressure-password"
./LockBox.Cli open \
--container "/backup/data.lbx" \
--output "/restore" \
--master-env LBX_DESTROY
Efter en vellykket destruktion er containeren ikke længere en gyldig LockBox-fil. CLI returnerer
exit-kode 0, fordi den ønskede destruktionshandling blev fuldført med succes.
Åbn containere
open udpakker en container til outputmappen. For normal udpakning skal lagnøgler
gives i samme rækkefølge som ved oprettelsen. For en destruktionsadgangskode-workflow kræves kun
containerstien, outputstien og destruktionsadgangskoden som hovedadgangskode.
Åbn en enkelt-lags container
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Åbn en delt container
.\LockBox.Cli.exe open `
-c "E:\Backups\data.lbx" `
-o "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Åbn 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
extractKontrollér ved gendannelse
Opret en lille report.csv til testen. Pak ud i en ny mappe; kildemappens navn bevares indeni. Hold alle dele sammen, og sammenlign med uændrede kilder. Udpakning kræver skrivbar midlertidig plads ved containeren. Beskyt også de gendannede ukrypterede 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"Planlægger
Scheduler-kommandoer er tilgængelige i Max-udgaven. De gemmer fuld opgave-metadata
i en krypteret .lbxjobs-fil, inklusive kildevej, outputvej,
adgangskoder, sletningsadgangskode, lagernøgler, komprimering, udfyldning, opdeling og
slet-kildeindhold indstilling.
Planlagte jobs kører kun, mens LockBox.Cli.exe schedule run kører.
Brug Windows Task Scheduler, Linux systemd, cron, en service-wrapper, eller en langvarig konsol
session, hvis du har brug for, at arbejderen starter automatisk efter genstart.
Frekvensværdier
once
30m
hourly
2h
3h
6h
9h
12h
18h
daily
2d
3d
5d
weekly
2w
monthly
2mo
3mo
6mo
9mo
yearly
Tilføj en daglig krypteret backup-opgave
$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
Tilføj en opgave, der sletter indholdet af kilde-mappen efter 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
Tilføj et månedligt arkiv med udfyldning og delte dele
.\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 gemte opgaver
.\LockBox.Cli.exe schedule list `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD
Kør scheduler-arbejderen
.\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 forfaldne opgaver én gang og afslut
.\LockBox.Cli.exe schedule run-once `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json"
Vis seneste kørselstatus
.\LockBox.Cli.exe schedule status --state "E:\Backups\jobs.status.json"
Statusmarkører er [OK], [RUNNING] og [FAILED].
En mislykket opgave inkluderer årsagen og fortæller brugeren at kontakte support, hvis problemet gentager sig.
JSON-scripts
Brug --script, når en arbejdsgang har flere trin. Script-runneren understøtter
create, open, keygen, algorithms,
device-id, license, og activate.
Opret og åbn i ét 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"
Fortsæt efter et fejlagtigt trin
{
"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 script
{
"commands": [
{
"command": "activate",
"licenseKeyFile": "C:\\Licenses\\lockbox-license.txt"
},
{ "command": "license" }
]
}JSON-felter og kørselsregler
Tabellen forbinder create-felter og open-nøglelister med CLI-indstillinger. Relative stier tager udgangspunkt i processens arbejdsmappe; variabler og datoer erstattes ikke. Brug én hemmelighedskilde pr. felt. open læser keys, derefter keyEnvs og keyFiles. Foretræk stopOnError: true; med false kan senere succes skjule en tidligere fejl. JSON-scripts understøtter ikke planlæggerkommandoer.
{
"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 der skal pakkes og krypteres. |
output / outputContainerPath | --output | Output .lbx sti. |
masterPassword | --master | Indlejret hovedadgangskode. |
masterPasswordEnv | --master-env | Læs hovedadgangskode fra miljøvariabel. |
masterPasswordFile | --master-file | Læs hovedadgangskode fra UTF-8 tekstfil. |
layers[].algorithm + layers[].key | --layer | Tilføj ALGORITHM=KEY. |
layers[].algorithm + layers[].keyEnv | --layer-env | Tilføj ALGORITHM=ENV. |
layers[].algorithm + layers[].keyFile | --layer-file | Tilføj ALGORITHM=FILE. |
compression / compress | --compress | Aktivér komprimering. |
padding | --padding | Tilføj krypteret tilfældig udfyldning. Enheder: B, KB, MB, GB, TB. |
paddingBytes | --padding-bytes | Udfyldningsstørrelse i rå byte. |
split / splitSize | --split | Del output i .lbx, .lbx1, .lbx2. |
splitPartSizeBytes | --split-bytes | Størrelse på del i rå byte. |
destructionPassword | --destruction-password | Max-only indlejret destruktionsadgangskode. Indtastning af den senere som hovedadgangskode overskriver containeren med det samme. |
destructionPasswordEnv | --destruction-password-env | Læs Max-only destruktionsadgangskode fra en miljøvariabel. |
destructionPasswordFile | --destruction-password-file | Læs Max-only destruktionsadgangskode fra en UTF-8 tekstfil. |
deleteSource / deleteSourceFolderAfterSuccess | --delete-source | Slet kilde-mappen efter vellykket manuel oprettelse. |
container / containerPath | --container | Eksisterende .lbx container. |
keys[] | --key | Inline lagernøgle i original rækkefølge. |
keyEnvs[] | --key-env | Lagernøgle fra miljøvariabel. |
keyFiles[] | --key-file | Lagernøgle fra UTF-8 tekstfil. |
Automationsopskrifter
Krypteret database dump-backup
$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-artifactbeskyttelse
.\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 partnerspecifik overførsel
.\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
Lagring på langt sigt
.\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: kopiér flere mapper
Gem scriptet på den angivne sti. Det opretter en entydigt navngivet container og log pr. kilde, stopper ved fejl og bevarer CLI-afslutningskoden. AES-128-GCM virker med Free; komprimering og opdeling 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: uovervågede sikkerhedskopier
Gem Bash-scriptet med LF-linjeslutninger. Forbered CLI og hemmeligheder på de angivne stier, og giv kildemapper som argumenter. Hver kørsel får sin egen mappe. Fejl efterlader en log og en kode forskellig fra nul; kilderne 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/reportsPlanlæg via operativsystemet
Opgaverne starter ovenstående scripts; denne brug af create kræver ikke Max. Windows-registreringen kører kun med en logget ind bruger; indstil kørsel uden login i Opgavestyring efter behov. Tilføj cron til backupkontoens crontab efter kontrol af flock. Begge eksempler kører kl. 02:00 lokal tid og forhindrer overlappende planlagte kørsler. Kontrollér rettigheder, 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 af planlæggeren
Opret servicekontoen lockbox med nødvendige rettigheder, aktivér Max for kontoen, og forbered den særskilte UTF-8-adgangskodefil jobs.txt. add tilføjer, opdaterer ikke: brug én gang pr. opgave. Kør én proces pr. opgavefil, og genstart efter ændringer. Status-JSON gendanner ikke historik: forsinkede gentagelser springes over, en forsinket once-opgave kan køre igen. Brug create til periodiske OS-starter i stedet for gentaget run-once. Planlæggeren genbruger 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.jsonKommando reference
| Kommando | Formål | Alias |
|---|---|---|
help | Vis konsol-hjælp. | --help, -h, ? |
device-id | Udskriv PC-enheds ID til licensudstedelse. | deviceid, machine-id |
license | Vis nuværende udgave og licenssti. | license-status, status |
activate | Installer en enheds-bunden licensnøgle. | activation |
algorithms | Liste algoritmer og minimumsudgaver. | profiles, list-algorithms |
keygen | Generer tilfældige nøgler. | generate-key, generate-keys |
create | Opret krypteret container. | encrypt |
open | Udpak krypteret container. | decrypt, extract |
schedule | Håndter og kør planlagte opgaver. | scheduler, scheduled-tasks |
script | Kør JSON-automationsfil. | --script |
Opret muligheder
--source, -s | Mappe der skal pakkes og krypteres. |
--output, -o | Output .lbx sti. |
--master | Indlejret hovedadgangskode. |
--master-env | Læs hovedadgangskode fra miljøvariabel. |
--master-file | Læs hovedadgangskode fra UTF-8 tekstfil. |
--layer | Tilføj ALGORITHM=KEY. |
--layer-env | Tilføj ALGORITHM=ENV. |
--layer-file | Tilføj ALGORITHM=FILE. |
--algorithm, -a | Alternativt algoritmeformat kombineret med --key, --key-env eller --key-file. |
--compress | Aktivér komprimering. |
--no-compress | Deaktiver komprimering, hvis det tidligere er indstillet. |
--padding | Tilføj krypteret tilfældig udfyldning. Enheder: B, KB, MB, GB, TB. |
--padding-bytes | Udfyldningsstørrelse i rå byte. |
--split | Del output i .lbx, .lbx1, .lbx2. |
--split-bytes | Størrelse på del i rå byte. |
--no-split | Deaktiver opdeling, hvis det tidligere er indstillet. |
--destruction-password | Max-only indlejret destruktionsadgangskode. Indtastning af den senere som hovedadgangskode overskriver containeren med det samme. |
--destruction-password-env | Læs Max-only destruktionsadgangskode fra en miljøvariabel. |
--destruction-password-file | Læs Max-only destruktionsadgangskode fra en UTF-8 tekstfil. |
--delete-source | Slet kilde-mappen efter vellykket manuel oprettelse. |
Åbn muligheder
--container, -c | Eksisterende .lbx container. |
--output, -o | Udpakningsmappe. |
--master, --master-env, --master-file | Kilde til hovedadgangskode. |
--key, -k | Inline lagernøgle i original rækkefølge. |
--key-env | Lagernøgle fra miljøvariabel. |
--key-file | Lagernøgle fra UTF-8 tekstfil. |
— | Tilladt for destruktions-adgangskode arbejdsgange. Normal udpakning fejler efter metadatalesning, hvis nødvendige nøgler mangler. |
Tidsplanlægningsmuligheder
schedule add | Tilføj en opgave til krypteret .lbxjobs. |
schedule list | Vis gemte opgaver. |
schedule run | Kør langvarig arbejdsgiver. |
schedule run-once | Kør forfaldne opgaver én gang og afslut. |
schedule status | Læs seneste runtime-status JSON. |
--tasks, --file | Krypteret opgavefilsti. |
--password, --password-env, --password-file | Adgangskode til opgavefil. |
--state, --status-file | Runtime-status JSON sti. |
--name | Opgavens navn for schedule add. |
--frequency, --every | Opgavefrekvens. |
--start, --start-at | Lokal startdato/-tid. |
--delete-source-contents | Slet indholdet af den oprindelige kilde-mappe efter en vellykket planlagt kørsel. |
--poll-seconds | Arbejderens pollingsinterval for schedule run. |
--language eller --lang vælger konsolsprog; --quiet skjuler almindelige statusmeddelelser, men fejl sendes stadig til standardfejl. Ctrl+C anmoder om annullering og returnerer 1. Kode 2 betyder ugyldig kommandosyntaks, og kode 3 en oprettelsesfunktion, der ikke er tilgængelig i den aktuelle udgave. Kode 0 returneres også ved bevidst aktivering af destruktionsadgangskoden og beviser derfor ikke i sig selv, at filer er udpakket. Kontrollér det forventede resultat før næste automatiseringstrin.
Afslutningskoder og overvågning
schedule run-once kan returnere nul trods mislykkede opgaver; schedule status også uden status. Kontrollér savedAt, lastSuccessAt og lastError; [OK] kan blot betyde Ready. Monitoren forventer daglige kopier, kontrol hvert 30. sekund og succes inden for 26 timer. Tilpas grænserne. JSON-tilstande er numeriske; --quiet skjuler normal udskrift 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 -> FailedFejlfinding
Hvorfor får jeg afgangskode 3?
Den nuværende udgave tillader ikke den anmodede funktion: for mange lag, kompression, kryptoforstærkning, opdeling, planlægger eller en stærkere algoritme.
Hvorfor fejler udpakning med en autentificeringstagsfejl?
Hovedadgangskoden, lagetasten, lagrækkefølgen eller containerfilen er forkert. For delte containere, kontroller også, at hver del er til stede i den samme mappe.
Hvorfor kører planlæggeren ikke efter jeg lukker konsollen?
schedule run er arbejdsprocessen. Hold den åben, eller start den fra Windows Task Scheduler eller en service-wrapper.
Hvorfor fejler planlæg-tilføj straks?
Planlæggeren validerer licens, kilde-mappe, outputsti, algoritmer, adgangskoder og ledig diskplads, før opgaven gemmes.
Kan jeg gemme planlæggerens adgangskoder i .lbxjobs-filen?
Ja. .lbxjobs-filen er krypteret med planlæggerfilens adgangskode og gemmer komplet opgave-metadata, inklusive krypteringsadgangskoder og lagetaster.
Hvad sker der, hvis en planlagt kørsel overlapper den foregående kørsel?
Den nye hændelse springes over, opgaven rapporterer en mislykket status med en forklaring, og fremtidige kørsel fortsætter efter den aktive kørsel er afsluttet.
Hvordan undgår jeg hemmeligheder i shell-historik?
Brug --master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env, og --password-file.