กลับไปที่ LockBox

เอกสาร 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 SHA256
uname -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.zip

SHA256SUMS.txt

Windows 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 $restore
set -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.json
source / 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 OK

Windows: สำรองหลายโฟลเดอร์

บันทึกสคริปต์ตามพาธที่ระบุ สคริปต์สร้างคอนเทนเนอร์ชื่อไม่ซ้ำและบันทึกเหตุการณ์แยกแต่ละต้นทาง หยุดเมื่อเกิดข้อผิดพลาด และคงรหัสออกของ 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
$LASTEXITCODE

Linux: สำรองโดยไม่ต้องเฝ้า

บันทึกสคริปต์ 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 -e
0 2 * * * /usr/bin/flock -n /srv/lockbox/backup.lock /bin/bash /srv/lockbox/backup.sh >> /srv/lockbox/cron.log 2>&1

crontab(5)

Max: ดูแลตัวจัดตารางงาน

สร้างบัญชีบริการ 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.target
sudo 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

systemd.service

เอกสารคำสั่ง

คำสั่ง วัตถุประสงค์ นามแฝง
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.