LockBox CLI құжаттамасы
LockBox CLI скрипттелген шифрлау, шығару, активация, жоспарланған шифрланған сақтық көшірмелер және CI/CD жұмыс процестері үшін ағылшын тілінде автоматтандыру құралы болып табылады. Ол десктоп қосымшасымен бірдей құрылғыға байланған лицензиялық модельді пайдаланады.
Жылдам бастау
LockBox.Cli.exe файлды PATH құрамына кіретін папкаға қойыңыз,
немесе оны толық жолымен шақырыңыз. --cli белгісі үйлесімділік үшін қабылданады,
бірақ тек CLI-нұсқада қажет емес.
.\LockBox.Cli.exe --help
.\LockBox.Cli.exe device-id
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen --count 3
Минималды жасау және ашу жұмыс ағымы:
$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 сол командаларды слаш жолдары және .exe қосымшасыз бинарлық файлдарымен қолданады:
chmod +x ./LockBox.Cli
./LockBox.Cli --help
./LockBox.Cli device-id
./LockBox.Cli create \
--source "/srv/data" \
--output "/backup/data.lbx" \
--master-env LBX_MASTER \
--layer-env AES-128-GCM=LBX_L1CLI орнату және тексеру
Жүйеңіз бен процессорыңызға арналған ZIP файлын ашыңыз. .NET жинаққа кіреді. Хешті SHA256SUMS.txt файлымен салыстырыңыз. CLI файлын төмендегі абсолютті жолға орналастырып, сақтық көшірме тіркелгісімен анықтама мен лицензияны тексеріңіз.
Linux жүйесіне ICU және OpenSSL сияқты дистрибутивтің жүйелік тәуелділіктері де қажет; кірістірілген .NET оларды қамтамасыз етпейді. Windows жүйесіндегі қолданыстағы орындау саясаты PowerShell скрипттеріне рұқсат беруі керек.
.NET / Linux · PowerShell / ExecutionPolicy
Expand-Archive -LiteralPath '.\LockBox-Cli-win-x64.zip' -DestinationPath 'C:\Tools\LockBox'
& 'C:\Tools\LockBox\LockBox.Cli.exe' --help
& 'C:\Tools\LockBox\LockBox.Cli.exe' license
Get-FileHash -LiteralPath '.\LockBox-Cli-win-x64.zip' -Algorithm SHA256uname -m
unzip LockBox-Cli-linux-x64.zip -d ./lockbox-cli
chmod +x ./lockbox-cli/LockBox.Cli
./lockbox-cli/LockBox.Cli --help
./lockbox-cli/LockBox.Cli license
sha256sum LockBox-Cli-linux-x64.zipWindows x64 -> LockBox-Cli-win-x64.zip
Windows x86 -> LockBox-Cli-win-x86.zip
Windows ARM64 -> LockBox-Cli-win-arm64.zip
Linux x86_64 -> LockBox-Cli-linux-x64.zip
Linux aarch64 -> LockBox-Cli-linux-arm64.zip
Linux armv7l -> LockBox-Cli-linux-arm.zipҚалталар, жолдар және бос орын
Жолдарды өз ортаңызға бейімдеңіз. Бастапқы қалта бос болмауы, контейнер оның сыртында орналасуы керек. Бірдей шығыс атауы алдыңғы контейнер мен бөліктерін алмастырады. Контейнер жанында уақытша файлдарға, жоспарлы тапсырмалар үшін бастапқы көшірмеге орын қалдырыңыз. Өлшем бірліктері 1024 негізінде; толтыру байттар қосады.
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.txtҚұпия файлдарды дайындау
Құпияларды бір рет жасап, қорғалған көшірмесін сақтаңыз және файлдарға қатынауды шектеңіз. Мысалдар бар кілттерді алмастырмайды. UTF-8 файлдарындағы бос орындар сақталады, соңғы жол ауысулары жойылады. Ескі көшірмелер үшін бастапқы кілттерді сақтаңыз.
$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.txtАктивтеу және лицензия күйі
Лицензия кілті сол CLI нұсқасы шығаратын құрылғы ID-сына байланысты. Егер лицензия басқа компьютерге көшірілсе, LockBox оны қабылдамайды және Free режиміне өтеді.
Windows бар LockBox қолданбасының деректер орындарын тексереді. Linux активтеуді
$XDG_CONFIG_HOME/lockbox/.lockbox.license ішінде сақтайды, содан кейін
~/.config/lockbox/.lockbox.license, ал ~/.lockbox/.lockbox.license қайтару механизмі ретінде.
Құрылғы ID-ны алу
.\LockBox.Cli.exe device-id
Ағымдағы нұсқаны тексеру
.\LockBox.Cli.exe license
Лицензия файлын пайдаланып активтеу
.\LockBox.Cli.exe activate --license-file "C:\Licenses\lockbox-license.txt"
Орталық айнымалысынан активтеу
$env:LBX_LICENSE = "LBX-LIC-..."
.\LockBox.Cli.exe activate --license-env LBX_LICENSE
Орындықта активтеу
Орындық активтеу жұмыс істейді, бірақ ол shell тарихы немесе процесс журналдары арқылы ағуы мүмкін.
.\LockBox.Cli.exe activate --license "LBX-LIC-..."
Linux активтеу
export LBX_LICENSE="LBX-LIC-..."
./LockBox.Cli activate --license-env LBX_LICENSE
./LockBox.Cli licenseҚұпияларды өңдеу
Қоршаған орта айнымалыларын немесе файлдарды пайдаланыңыз. Жолға енгізілген құпия мәліметтер тек тестілеу үшін пайдалы. Негізгі парольдер мен қабат кілттерін сақтау керек: оларсыз контейнерді аша алмайсыз.
| Мақсат | Жолға енгізілген | Қоршаған орта | Файл |
|---|---|---|---|
| Негізгі пароль | --master value | --master-env ENV | --master-file path |
| Қабат кілтін жасау | --layer ALG=KEY | --layer-env ALG=ENV | --layer-file ALG=FILE |
| Қабат кілтін ашу | --key value | --key-env ENV | --key-file path |
| Жоспарлаушы файл паролі | --password value | --password-env ENV | --password-file path |
| Контейнерді жою паролі | --destruction-password value | --destruction-password-env ENV | --destruction-password-file path |
| Лицензиялық кілт | --license value | --license-env ENV | --license-file path |
Файл негізіндегі құпиялар
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.txtАлгоритмдер және кілт генерациясы
Барлық қолдау көрсетілген профильдер мен минималды нұсқаларды көру үшін algorithms пайдаланыңыз.
Қабат кілттері үшін keygen пайдаланыңыз.
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen
.\LockBox.Cli.exe keygen --count 9
.\LockBox.Cli.exe generate-keys -n 20
Қолдау көрсетілетін командалық псевдонимдер:
algorithms
list-algorithms
profiles
keygen
generate-key
generate-keysКонтейнерлерді жасау
create бастапқы қалтаны жинайды, қажет болса сығуды және толтыруды қолданады,
деректерді бір немесе бірнеше қабат арқылы шифрлайды және .lbx контейнерін жазады.
Қажетті параметрлер
--sourceнемесе-s: бастапқы қалта.--outputнемесе-o: шығу.lbxжолы.--master,--master-env, немесе--master-file.- Ең болмағанда бір қабат:
--layer,--layer-env, немесе--layer-file.
Минималды AES контейнері
.\LockBox.Cli.exe create `
-s "D:\Data" `
-o "E:\Backups\data.lbx" `
--master-env LBX_MASTER `
--layer-env AES-128-GCM=LBX_L1
Сығылған контейнер
.\LockBox.Cli.exe create `
--source "D:\Exports" `
--output "E:\Backups\exports.lbx" `
--master-env LBX_MASTER `
--layer-env AES-256-GCM=LBX_L1 `
--compress
Крипто толтыру
.\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
Контейнерді бөліктерге бөлу
.\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
Бірінші бөлік .lbx ұстайды. Қосымша бөліктер .lbx1, .lbx2 және т.б. қолданады. Барлық бөліктерді бір қалтада сақтаңыз.
Тоғыз қабатты 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
Альтернативті алгоритм/кілт синтаксисі
.\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
Қолмен жасау сәтті аяқталғаннан кейін бастапқыны жою
.\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 бастапқы қалтаны тек контейнер сәтті жасалғаннан кейін ғана жояды. Жоспарлаушыда басқа параметр бар: --delete-source-contents.
Контейнерді жою құпия сөзі
Max редакциясы контейнерге жеке жою құпия сөзін қоса алады. Кейін бұл құпия сөз негізгі құпия сөз ретінде енгізілсе, LockBox контейнерді растамай бірден қайта жазады. Бұл мәжбүрлеу қысым жағдайлары үшін арналған. Оны шынайы негізгі құпия сөзден бөлек сақтау керек.
Бұл команда бос диск орнын тексереді, бастапқы контейнер деректерін жаңа кездейсоқ құпия сөзбен және AES-256-GCM шифрлеу арқылы уақытша файлға жазады, нәтижені бастапқы нақты мөлшерге келтіреді, бастапқы файлды ауыстырады және кездейсоқ құпияны ұмытады. Бөлінген контейнерлер үшін сол қалтадағы әрбір .lbx, .lbx1, .lbx2 бөлігі бастапқы өлшемдерін сақтай отырып ауыстырылады.
Жою құпия сөзімен жасау
$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Қабат кілттері жоқта жою бастау
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_DESTROYLinux бастау
export LBX_DESTROY="pressure-password"
./LockBox.Cli open \
--container "/backup/data.lbx" \
--output "/restore" \
--master-env LBX_DESTROYСәтті жоюдан кейін контейнер LockBox файлы ретінде жарамсыз болады. CLI 0 шығу кодын қайтарады, себебі сұралған жою әрекеті сәтті аяқталды.
Контейнерлерді ашу
open контейнерді шығару қалтасына шығарады. Қалыпты шығару үшін қабат кілттері жасау кезінде қолданылған тәртіппен берілуі керек. Жою-құпия сөздік жұмыс процесінде тек контейнер жолы, шығару жолы және негізгі құпия сөз ретінде жою құпия сөзі қажет.
Бір қабатты контейнерді ашу
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1Бөлінген контейнерді ашу
.\LockBox.Cli.exe open `
-c "E:\Backups\data.lbx" `
-o "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1Көп қабатты контейнерді ашу
.\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Лақап аттар
open
decrypt
extractҚалпына келтіру арқылы тексеру
Сынақ үшін шағын report.csv жасаңыз. Жаңа қалтаға шығарыңыз; ішінде бастапқы қалтаның атауы сақталады. Барлық бөліктерді бірге сақтап, өзгермеген бастапқы файлдармен салыстырыңыз. Шығару үшін контейнер жанында жазылатын уақытша орын қажет. Қалпына келтірілген шифрланбаған файлдарды да қорғаңыз.
$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"Жоспарлаушы
Жоспарлаушы командалары Max нұсқасында қолжетімді. Олар толық тапсырма метадеректерін
шифрланған .lbxjobs файлында сақтайды, соның ішінде бастапқы жол, шығару жолы,
парольдер, жою паролі, қабат кілттері, сығымдау, толтыру, бөлу және бастапқы мазмұнды жою параметрлері.
Белгіленген жұмыс тек LockBox.Cli.exe schedule run іске қосылған кезде жұмыс істейді.
Егер жұмысшыны қайта жүктегенде автоматты түрде бастау қажет болса, Windows Task Scheduler, Linux systemd, cron, қызмет ораушы немесе ұзақ уақыт жұмыс істейтін консоль сессиясын қолданыңыз.
Жиілік мәндері
once
30m
hourly
2h
3h
6h
9h
12h
18h
daily
2d
3d
5d
weekly
2w
monthly
2mo
3mo
6mo
9mo
yearly
Күнделікті шифрланған сақтық көшірме тапсырмасын қосу
$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
Сәтті аяқталғаннан кейін бастапқы қалта мазмұнын жоятын тапсырманы қосу
.\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
Толтырумен және бөлінген бөліктермен айлық архив қосу
.\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
Сақталған тапсырмаларды тізімдеу
.\LockBox.Cli.exe schedule list `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD
Жоспарлаушы жұмысшысын іске қосу
.\LockBox.Cli.exe schedule run `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json" `
--poll-seconds 30
Мерзімі жеткен тапсырмаларды бір рет іске қосып шығу
.\LockBox.Cli.exe schedule run-once `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json"
Соңғы орындалу күйін көрсету
.\LockBox.Cli.exe schedule status --state "E:\Backups\jobs.status.json"
Күй маркерлері [OK], [RUNNING], және [FAILED] болып табылады.
Сәтсіз аяқталған тапсырма себебін көрсетеді және мәселе қайталанса, пайдаланушыға қолдау қызметіне хабарласуды ұсынады.
JSON скрипттер
Бірнеше қадамнан тұратын жұмыс ағысында --script қолданыңыз. Скрипт орындаушы
create, open, keygen, algorithms,
device-id, license, және activate қолдайды.
Бір скриптте жасау және ашу
{
"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"
Сәтсіз қадамнан кейін жалғастыру
{
"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" }
]
}
]
}
Скрипттен іске қосу
{
"commands": [
{
"command": "activate",
"licenseKeyFile": "C:\\Licenses\\lockbox-license.txt"
},
{ "command": "license" }
]
}JSON өрістері және орындау ережелері
Кесте create өрістері мен open кілт массивтерін CLI параметрлерімен байланыстырады. Салыстырмалы жолдар процестің жұмыс каталогынан басталады; айнымалылар мен күндер алмастырылмайды. Әр өріске бір құпия көзі болсын. open алдымен keys, кейін keyEnvs және keyFiles оқиды. stopOnError: true таңдаңыз; false кезінде кейінгі сәттілік алдыңғы қатені жасыруы мүмкін. JSON скрипттері жоспарлағыш командаларын қолдамайды.
{
"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 | Қаптап, шифрлайтын қалта. |
output / outputContainerPath | --output | Шығарылатын .lbx жолы. |
masterPassword | --master | Жол ішіндегі негізгі құпия сөз. |
masterPasswordEnv | --master-env | Негізгі құпия сөзді қоршаған орта айнымалыларынан оқу. |
masterPasswordFile | --master-file | Негізгі құпия сөзді UTF-8 мәтіндік файлдан оқу. |
layers[].algorithm + layers[].key | --layer | ALGORITHM=KEY қосу. |
layers[].algorithm + layers[].keyEnv | --layer-env | ALGORITHM=ENV қосу. |
layers[].algorithm + layers[].keyFile | --layer-file | ALGORITHM=FILE қосу. |
compression / compress | --compress | Сығымдауды қосу. |
padding | --padding | Шифрланған кездейсоқ толтырманы қосу. Бірліктері: B, KB, MB, GB, TB. |
paddingBytes | --padding-bytes | Толтырманың мөлшері шикі байттарда. |
split / splitSize | --split | Шығуын .lbx, .lbx1, .lbx2 бөлу. |
splitPartSizeBytes | --split-bytes | Бөлік мөлшері шикі байттарда. |
destructionPassword | --destruction-password | Тек-Max ішкі жою құпия сөзі. Кейін оны негізгі құпия сөз ретінде енгізу контейнерді дереу қайта жазады. |
destructionPasswordEnv | --destruction-password-env | Тек-Max жою құпия сөзін қоршаған орта айнымалыларынан оқу. |
destructionPasswordFile | --destruction-password-file | Тек-Max жою құпия сөзін UTF-8 мәтіндік файлдан оқу. |
deleteSource / deleteSourceFolderAfterSuccess | --delete-source | Қолмен сәтті жасау соңында бастапқы қалтаны өшіру. |
container / containerPath | --container | Бар .lbx контейнері. |
keys[] | --key | Бастапқы реттегі кірістірілген қабат кілті. |
keyEnvs[] | --key-env | Қабат кілті ортаның айнымалысынан. |
keyFiles[] | --key-file | UTF-8 мәтіндік файлдан қабат кілті. |
Автоматтандыру рецептері
Шифрланған дерекқордың сақтық көшірмесін жасау
$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 артефакттарын қорғау
.\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
Серіктестерге қауіпсіз беру
.\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
Ұзақ мерзімді архив
.\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
Бат файл мысалы
@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: бірнеше қалтаны көшіру
Скриптті көрсетілген жолға сақтаңыз. Әр бастапқы қалтаға бірегей атаулы контейнер мен журнал жасайды, қате кезінде тоқтап, CLI шығу кодын сақтайды. AES-128-GCM Free нұсқасында жұмыс істейді; қысу және бөлу үшін Pro не 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: қараусыз сақтық көшіру
Bash скриптін LF жол аяқталуымен сақтаңыз. CLI мен құпияларды көрсетілген жолдарда дайындап, бастапқы қалталарды аргумент ретінде беріңіз. Әр іске қосу жеке каталог алады. Қате журнал мен нөлден өзге код қалдырады; бастапқы файлдар сақталады.
/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/reportsОперациялық жүйе арқылы жоспарлау
Тапсырмалар жоғарыдағы скрипттерді іске қосады; create командасының мұндай қолданылуына Max қажет емес. Windows тіркеуі тек пайдаланушы кіргенде орындалады; қажет болса Тапсырма жоспарлағышында кірмей орындауды баптаңыз. flock барын тексеріп, көшіру тіркелгісінің crontab файлына cron қосыңыз. Екі мысал жергілікті 02:00-де орындалып, жоспарлы іске қосулардың қабаттасуын болдырмайды. Құқықтарды тексеріп, қолмен сынаңыз.
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: жоспарлағышты пайдалану
Қажетті құқықтары бар lockbox қызмет тіркелгісін жасап, оған Max белсендіріңіз және бөлек UTF-8 құпиясөз файлын jobs.txt дайындаңыз. add қосады, жаңартпайды: әр тапсырмаға бір рет қолданыңыз. Әр тапсырма файлына бір процесс жүргізіп, өзгерістен кейін қайта іске қосыңыз. Күй JSON файлы тарихты қалпына келтірмейді: өткізіп алған қайталанулар атталады, мерзімі өткен once қайта орындалуы мүмкін. Жүйелік мерзімді іске қосуға қайталанатын run-once орнына create қолданыңыз. Жоспарлағыш шығыс атауын қайта пайдаланады.
/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.jsonКоманда анықтамалығы
| Команда | Мақсаты | Синонимдер |
|---|---|---|
help | Консольдық көмек көрсетеді. | --help, -h, ? |
device-id | Лицензия беру үшін ПК құрылғысының ID нөмірін шығарады. | deviceid, machine-id |
license | Ағымдағы нұсқаны және лицензия жолын көрсетеді. | license-status, status |
activate | Құрылғыға байланған лицензия кілтін орнатады. | activation |
algorithms | Алгоритмдерді және минималды нұсқаларды тізімдейді. | profiles, list-algorithms |
keygen | Кездейсоқ кілттер жасайды. | generate-key, generate-keys |
create | Шифрланған контейнер жасайды. | encrypt |
open | Шифрланған контейнерді шығарады. | decrypt, extract |
schedule | Жоспарланған тапсырмаларды басқарады және іске қосады. | scheduler, scheduled-tasks |
script | JSON автоматтандыру файлын іске қосады. | --script |
Опциялар жасау
--source, -s | Қаптап, шифрлайтын қалта. |
--output, -o | Шығарылатын .lbx жолы. |
--master | Жол ішіндегі негізгі құпия сөз. |
--master-env | Негізгі құпия сөзді қоршаған орта айнымалыларынан оқу. |
--master-file | Негізгі құпия сөзді UTF-8 мәтіндік файлдан оқу. |
--layer | ALGORITHM=KEY қосу. |
--layer-env | ALGORITHM=ENV қосу. |
--layer-file | ALGORITHM=FILE қосу. |
--algorithm, -a | --key, --key-env, немесе --key-file-пен жұпталған альтернатив алгоритм формасы. |
--compress | Сығымдауды қосу. |
--no-compress | Егер бұрын орнатылған болса, сығымдауды өшіру. |
--padding | Шифрланған кездейсоқ толтырманы қосу. Бірліктері: B, KB, MB, GB, TB. |
--padding-bytes | Толтырманың мөлшері шикі байттарда. |
--split | Шығуын .lbx, .lbx1, .lbx2 бөлу. |
--split-bytes | Бөлік мөлшері шикі байттарда. |
--no-split | Егер бұрын орнатылған болса, бөлуді өшіру. |
--destruction-password | Тек-Max ішкі жою құпия сөзі. Кейін оны негізгі құпия сөз ретінде енгізу контейнерді дереу қайта жазады. |
--destruction-password-env | Тек-Max жою құпия сөзін қоршаған орта айнымалыларынан оқу. |
--destruction-password-file | Тек-Max жою құпия сөзін UTF-8 мәтіндік файлдан оқу. |
--delete-source | Қолмен сәтті жасау соңында бастапқы қалтаны өшіру. |
Опцияларды ашу
--container, -c | Бар .lbx контейнері. |
--output, -o | Шығарылатын қалта. |
--master, --master-env, --master-file | Негізгі пароль көзі. |
--key, -k | Бастапқы реттегі кірістірілген қабат кілті. |
--key-env | Қабат кілті ортаның айнымалысынан. |
--key-file | UTF-8 мәтіндік файлдан қабат кілті. |
— | Жойылатын пароль жұмыс процестері үшін рұқсат етілген. Қажетті кілттер жоқ болса, қалыпты шығару метадеректерді оқудан кейін сәтсіз болады. |
Жоспарлаушы опциялары
schedule add | Шифрланған .lbxjobs тапсырмасын қосу. |
schedule list | Сақталған тапсырмаларды көрсету. |
schedule run | Ұзақ қатысатыны жұмысшыны іске қосу. |
schedule run-once | Мерзімі келген тапсырмаларды бір рет іске қосып, шығу. |
schedule status | Соңғы іске қосылу күйінің JSON файлын оқу. |
--tasks, --file | Шифрланған тапсырма файл жолы. |
--password, --password-env, --password-file | Тапсырма файлының паролі. |
--state, --status-file | Іске қосу күйінің JSON файлы жолы. |
--name | schedule add үшін тапсырма атауы. |
--frequency, --every | Тапсырма жиілігі. |
--start, --start-at | Жергілікті басталу күні/уақыты. |
--delete-source-contents | Сәтті жоспарланған іске қосудан кейін бастапқы деректер қалтасының мазмұнын жою. |
--poll-seconds | schedule run үшін жұмысшының сұрау интервалы. |
Консоль тілін таңдау үшін --language немесе --lang, ал қалыпты орындалу барысын жасыру үшін --quiet пайдаланыңыз; қателер стандартты қате ағынына жіберіле береді. Ctrl+C бас тартуды сұрап, 1 кодын қайтарады. 2 коды пәрмен синтаксисінің жарамсыз екенін; 3 коды жасау мүмкіндігінің ағымдағы нұсқада қолжетімсіз екенін білдіреді. 0 коды жою құпиясөзінің әдейі іске қосылуын да қамтиды, сондықтан ол өздігінен файлдардың шығарылғанын дәлелдемейді. Келесі автоматтандыру қадамдарына дейін күтілетін шығысты тексеріңіз.
Шығу кодтары және бақылау
schedule run-once тапсырма қатесіне қарамастан нөл қайтара алады; schedule status күй жоқта да нөл береді. savedAt, lastSuccessAt және lastError тексеріңіз; [OK] тек Ready болуы мүмкін. Монитор күнделікті көшірмені, 30 секундтық сұрауды және 26 сағат ішіндегі сәттілікті күтеді. Шектерді бейімдеңіз. JSON күйлері сандармен беріледі; --quiet сәтті create/open қалыпты шығысын жасырады.
$ErrorActionPreference = 'Stop'
try {
$status = Get-Content -LiteralPath 'E:\Backups\jobs.status.json' -Raw | ConvertFrom-Json
if (@($status.tasks).Count -eq 0) { throw 'No tasks in status file' }
if ([DateTimeOffset]$status.savedAt -lt [DateTimeOffset]::Now.AddMinutes(-2)) {
throw 'Worker status is stale'
}
foreach ($task in $status.tasks) {
if ($task.state -eq 3 -or $task.lastError) { throw "Task failed: $($task.name)" }
if (-not $task.lastSuccessAt -or [DateTimeOffset]$task.lastSuccessAt -lt [DateTimeOffset]::Now.AddHours(-26)) {
throw "No recent successful backup: $($task.name)"
}
}
exit 0
} catch {
Write-Error $_ -ErrorAction Continue
exit 1
}0 -> Ready
1 -> Running
2 -> Completed
3 -> FailedМәселелерді шешу
Неліктен мен exit code 3 аламын?
Ағымдағы нұсқада сұралған функция рұқсат етілмейді: қабаттар саны көп, сығымдау, крипто толтыру, бөлу, жоспарлаушы немесе күшті алгоритм.
Неліктен шығару аутентификация тегінің қатесімен сәтсіз болады?
Негізгі құпиясөз, қабат кілті, қабат тәртібі немесе контейнер файлы дұрыс емес. Бөлу контейнері үшін барлық бөліктің бір қалтада бар екенін тексеріңіз.
Неліктен консольді жауып қойғаннан кейін жоспарлаушы жұмыс істемейді?
schedule run - жұмысшы процесс. Оны ашық қалдырыңыз немесе Windows Task Scheduler немесе қызмет орамасы арқылы іске қосыңыз.
Неліктен schedule add дереу сәтсіз болады?
Жоспарлаушы лицензияны, бастапқы қалтаны, шығару жолын, алгоритмдерді, құпиясөздерді және бос диск орнын тексеріп, содан кейін тапсырманы сақтайды.
Мен .lbxjobs файлына жоспарлаушы құпиясөздерін сақтай аламын ба?
Иә. .lbxjobs файлы жоспарлаушы файлының құпиясөздерімен шифрланған және толық тапсырма метадеректерін, соның ішінде шифрлау құпиясөздерін және қабат кілттерін сақтайды.
Егер жоспарланған іске қосу алдыңғы іске қосумен қиылысса не болады?
Жаңа іс-шара өткізіледі, тапсырма қатемен аяқталды деп есеп береді және болашақ іске қосулар ағымдағы іске қосу аяқталғаннан кейін жалғасады.
Мен shell тарихында құпия мәліметтерді қалай болдырмаймын?
--master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env, және --password-file пайдаланыңыз.