เอกสาร 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_L1ติดตั้งและตรวจสอบ CLI
แตกไฟล์ 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 ส่วน padding คือจำนวนไบต์ที่เพิ่ม ไม่ใช่ขนาดรวมสุดท้าย
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 เดียวกัน. หากคัดลอกใบอนุญาตไปยังคอมพิวเตอร์อื่น, LockBox จะปฏิเสธและกลับไปใช้รุ่นฟรี.
Windows ตรวจสอบตำแหน่งข้อมูลแอป LockBox ที่มีอยู่ Linux จะเก็บการเปิดใช้งานใน
$XDG_CONFIG_HOME/lockbox/.lockbox.license, จากนั้น
~/.config/lockbox/.lockbox.license, โดยใช้ ~/.lockbox/.lockbox.license
เป็นตัวสำรอง.
รับรหัสอุปกรณ์
.\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 9 ชั้น
$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 ลบโฟลเดอร์ต้นฉบับก็ต่อเมื่อคอนเทนเนอร์ถูกสร้างสำเร็จเท่านั้น
Scheduler มีตัวเลือกต่างออกไป: --delete-source-contents.
รหัสผ่านทำลายคอนเทนเนอร์
Max edition สามารถเพิ่มรหัสผ่านทำลายแยกต่างหากให้กับคอนเทนเนอร์ เมื่อรหัสผ่านนั้นถูกใส่ในภายหลังเป็นรหัสผ่านหลัก 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_DESTROY
ทริกเกอร์ Linux
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"ตัวกำหนดเวลา
คำสั่ง Scheduler มีให้ใน Max edition พวกเขาจะจัดเก็บเมทาดาต้าของงานเต็มรูปในไฟล์ที่เข้ารหัส .lbxjobs รวมถึงเส้นทางต้นทาง, เส้นทางเอาต์พุต, รหัสผ่าน, รหัสผ่านทำลาย, คีย์ชั้น, การบีบอัด, การเพิ่ม padding, การแยก, และการตั้งค่าลบเนื้อหาต้นฉบับ.
งานที่ตั้งเวลาไว้จะทำงานเฉพาะขณะที่ 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 พาธสัมพัทธ์เริ่มจากไดเรกทอรีทำงานของกระบวนการ ไม่ใช่ไฟล์ JSON และจะไม่แทนค่าตัวแปรหรือวันที่ ใช้แหล่งข้อมูลลับเดียวต่อฟิลด์ 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 path. |
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-only. การใส่รหัสผ่านนี้ภายหลังเป็นรหัสผ่านหลักจะเขียนทับคอนเทนเนอร์ทันที. |
destructionPasswordEnv | --destruction-password-env | อ่านรหัสผ่านทำลายแบบ max-only จากตัวแปรสภาพแวดล้อม. |
destructionPasswordFile | --destruction-password-file | อ่านรหัสผ่านทำลายแบบ max-only จากไฟล์ข้อความ 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 ทำงานเฉพาะขณะผู้ใช้เข้าสู่ระบบ หากต้องการทำงานหลังออกจากระบบให้ตั้งค่าใน Task Scheduler ตรวจสอบว่ามี flock แล้วเพิ่มรายการ cron ใน crontab ของบัญชีสำรอง ทั้งสองตัวอย่างทำงานเวลา 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 ที่เลยเวลาอาจทำซ้ำได้ สำหรับการเรียกเป็นระยะจากระบบให้ใช้ create แทน run-once ซ้ำ ตัวจัดตารางในโปรแกรมจะใช้ชื่อปลายทางเดิม
/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 path. |
--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-only. การใส่รหัสผ่านนี้ภายหลังเป็นรหัสผ่านหลักจะเขียนทับคอนเทนเนอร์ทันที. |
--destruction-password-env | อ่านรหัสผ่านทำลายแบบ max-only จากตัวแปรสภาพแวดล้อม. |
--destruction-password-file | อ่านรหัสผ่านทำลายแบบ max-only จากไฟล์ข้อความ 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การแก้ปัญหา
ทำไมฉันถึงได้รับรหัสออก 3?
รุ่นปัจจุบันไม่รองรับฟีเจอร์ที่ร้องขอ: ชั้นข้อมูลมากเกินไป, การบีบอัด, การเติมข้อมูลเข้ารหัส, การแบ่งไฟล์, ตัวจัดตาราง, หรืออัลกอริธึมที่แข็งแรงกว่า
ทำไมการดึงข้อมูลถึงล้มเหลวพร้อมข้อความแสดงความผิดพลาดของแท็กการตรวจสอบตัวตน?
รหัสผ่านหลัก, กุญแจชั้น, ลำดับชั้น, หรือไฟล์คอนเทนเนอร์ไม่ถูกต้อง สำหรับคอนเทนเนอร์ที่แบ่งส่วน โปรดยืนยันว่าทุกส่วนอยู่ในโฟลเดอร์เดียวกัน
ทำไมตัวจัดตารางถึงไม่ทำงานหลังจากฉันปิดคอนโซล?
schedule run คือกระบวนการของพนักงาน ให้คงเปิดไว้ หรือเรียกใช้งานจาก Windows Task Scheduler หรือ service wrapper
ทำไมการเพิ่มตารางงานถึงล้มเหลวทันที?
ตัวจัดตารางจะตรวจสอบใบอนุญาต, โฟลเดอร์ต้นทาง, เส้นทางผลลัพธ์, อัลกอริธึม, รหัสผ่าน, และพื้นที่ว่างบนดิสก์ก่อนบันทึกงาน
ฉันสามารถเก็บรหัสผ่านของตัวจัดตารางไว้ในไฟล์ .lbxjobs ได้หรือไม่?
ได้ ไฟล์ .lbxjobs ถูกเข้ารหัสด้วยรหัสผ่านไฟล์ของตัวจัดตารางและเก็บเมตาดาต้าของงานทั้งหมด รวมถึงรหัสผ่านการเข้ารหัสและกุญแจชั้น
จะเกิดอะไรขึ้นหากการรันตามตารางทับซ้อนกับการรันครั้งก่อน?
เหตุการณ์ใหม่จะถูกข้าม, งานจะแจ้งสถานะล้มเหลวกพร้อมคำอธิบาย, และการรันในอนาคตดำเนินต่อหลังจากการรันปัจจุบันเสร็จสิ้น
ฉันจะหลีกเลี่ยงความลับในประวัติของเชลล์ได้อย่างไร?
ใช้ --master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env และ --password-file.