LockBox CLI dokümantasyonu
LockBox CLI, şifreleme, çıkarma, aktivasyon, planlanmış şifreli yedeklemeler ve CI/CD iş akışları için İngilizce otomasyon derlemesidir. Masaüstü uygulaması ile aynı cihaz bağlı lisans modelini kullanır.
Hızlı başlangıç
LockBox.Cli.exe dosyasını PATH içine dahil edilmiş bir klasöre koyun,
veya tam yol ile çağırın. Uyumluluk için --cli işareti kabul edilir
ancak yalnızca CLI sürümünde gerekli değildir.
.\LockBox.Cli.exe --help
.\LockBox.Cli.exe device-id
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen --count 3
Minimal oluşturma ve açma iş akışı:
$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, eğik çizgi yolları ve .exe ekine sahip olmayan bir ikili ile aynı komutları kullanır:
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 kurulumu ve doğrulaması
Sisteminiz ve işlemciniz için uygun ZIP dosyasını açın. .NET dahildir. Özeti SHA256SUMS.txt ile karşılaştırın. CLI dosyasını aşağıdaki mutlak yola yerleştirin; yardım ve lisansı yedekleme hesabıyla kontrol edin.
Linux ayrıca ICU ve OpenSSL gibi dağıtımın yerel bağımlılıklarını gerektirir; paketlenen .NET bunları sağlamaz. Windows üzerinde geçerli yürütme ilkesi PowerShell betiklerine izin vermelidir.
.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.zipKlasörler, yollar ve disk alanı
Yolları uyarlayın. Kaynak klasör boş olmamalı, kapsayıcı onun dışında bulunmalıdır. Aynı çıktı adı önceki kapsayıcıyı ve parçalarını değiştirir. Kapsayıcı yanında geçici alan, zamanlanmış görevler için ayrıca kaynak kopyası alanı ayırın. Boyut birimleri 1024 tabanlıdır; dolgu bayt ekler.
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.txtGizli bilgi dosyalarını hazırlama
Gizli bilgileri bir kez üretin, korumalı kopyasını saklayın ve dosya erişimini sınırlayın. Örnekler mevcut anahtarları değiştirmez. UTF-8 dosyalarında boşluklar korunur, sondaki satır sonları kaldırılır. Eski yedekler için özgün anahtarları saklayın.
$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.txtAktivasyon ve lisans durumu
Lisans anahtarı, aynı CLI sürümü tarafından yazdırılan cihaz kimliğine bağlıdır. Eğer lisans başka bir PC'ye kopyalanırsa, LockBox bunu reddeder ve Free sürüme geçer.
Windows mevcut LockBox uygulama veri konumlarını kontrol eder. Linux aktivasyonu
$XDG_CONFIG_HOME/lockbox/.lockbox.license içinde saklar, sonra
~/.config/lockbox/.lockbox.license, ve ~/.lockbox/.lockbox.license bir yedek olarak kullanılır.
Cihaz kimliğini al
.\LockBox.Cli.exe device-id
Mevcut sürümü kontrol et
.\LockBox.Cli.exe license
Lisans dosyasından aktivasyon
.\LockBox.Cli.exe activate --license-file "C:\Licenses\lockbox-license.txt"
Ortam değişkeninden aktivasyon
$env:LBX_LICENSE = "LBX-LIC-..."
.\LockBox.Cli.exe activate --license-env LBX_LICENSE
Satır içi aktivasyon
Satır içi aktivasyon çalışır, ancak kabuk geçmişi veya süreç günlüklerinden sızabilir.
.\LockBox.Cli.exe activate --license "LBX-LIC-..."
Linux aktivasyonu
export LBX_LICENSE="LBX-LIC-..."
./LockBox.Cli activate --license-env LBX_LICENSE
./LockBox.Cli licenseGizli bilgi yönetimi
Çevresel değişkenleri veya dosyaları tercih edin. Satır içi gizli bilgiler yalnızca test için kullanışlıdır. Ana şifreler ve katman anahtarları korunmalıdır: bunlar olmadan konteyner açılamaz.
| Amacı | Satır içi | Çevresel | Dosya |
|---|---|---|---|
| Ana şifre | --master value | --master-env ENV | --master-file path |
| Katman anahtarı oluştur | --layer ALG=KEY | --layer-env ALG=ENV | --layer-file ALG=FILE |
| Katman anahtarını aç | --key value | --key-env ENV | --key-file path |
| Zamanlayıcı dosya şifresi | --password value | --password-env ENV | --password-file path |
| Konteyner yok etme şifresi | --destruction-password value | --destruction-password-env ENV | --destruction-password-file path |
| Lisans anahtarı | --license value | --license-env ENV | --license-file path |
Dosya tabanlı gizli bilgiler
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.txtAlgoritmalar ve anahtar üretimi
Tüm desteklenen profilleri ve minimum sürümleri görmek için algorithms kullanın.
Katman anahtarları için keygen kullanın.
.\LockBox.Cli.exe algorithms
.\LockBox.Cli.exe keygen
.\LockBox.Cli.exe keygen --count 9
.\LockBox.Cli.exe generate-keys -n 20
Desteklenen komuta takma adları:
algorithms
list-algorithms
profiles
keygen
generate-key
generate-keysKapsayıcı oluştur
create bir kaynak klasörü paketler, isteğe bağlı sıkıştırma ve dolgu uygular,
yükü bir veya daha fazla katman üzerinden şifreler ve bir .lbx kapsayıcı yazar.
Gerekli seçenekler
--sourceveya-s: kaynak klasör.--outputveya-o: çıktı.lbxyolu.--master,--master-envveya--master-file.- En az bir katman:
--layer,--layer-envveya--layer-file.
Minimal AES kapsayıcı
.\LockBox.Cli.exe create `
-s "D:\Data" `
-o "E:\Backups\data.lbx" `
--master-env LBX_MASTER `
--layer-env AES-128-GCM=LBX_L1
Sıkıştırılmış kapsayıcı
.\LockBox.Cli.exe create `
--source "D:\Exports" `
--output "E:\Backups\exports.lbx" `
--master-env LBX_MASTER `
--layer-env AES-256-GCM=LBX_L1 `
--compress
Krypto dolgu
.\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
Kapsayıcıyı parçalara ayır
.\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
İlk parça .lbx tutar. Ek parçalar
.lbx1, .lbx2 ve devam eder. Tüm parçaları aynı klasörde saklayın.
Dokuz katmanlı Max örneği
$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
Alternatif algoritma/anahtar sözdizimi
.\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
Başarılı manuel oluşturma sonrası kaynağı sil
.\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 sadece kapsayıcı başarıyla oluşturulduktan sonra kaynak klasörü siler.
Zamanlayıcının farklı bir seçeneği vardır: --delete-source-contents.
Konteyner yok etme şifresi
Max sürüm, bir konteynere ayrı bir yok etme şifresi ekleyebilir. Bu şifre daha sonra ana şifre olarak girildiğinde, LockBox konteyneri hemen onay almadan üstüne yazar. Bu, zorlayıcı durumlar için tasarlanmıştır. Bunu gerçek ana şifreden ayrı tutun.
Komut, boş disk alanını doğrular, orijinal konteyner verilerini taze bir rastgele
gizli anahtar ve AES-256-GCM ile şifreleyerek geçici bir dosyaya yazar, sonucu tam orijinal boyuta normalize eder,
orijinal dosyanın yerini alır ve rastgele gizli anahtarı unutur. Bölünmüş konteynerler için, aynı klasördeki her
.lbx, .lbx1, .lbx2 parça orijinal parça boyutlarını koruyarak değiştirilir.
Yok etme şifresi ile oluşturma
$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
Katman anahtarsız yok etme tetikleme
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_DESTROY
Linux tetikleme
export LBX_DESTROY="pressure-password"
./LockBox.Cli open \
--container "/backup/data.lbx" \
--output "/restore" \
--master-env LBX_DESTROY
Başarılı yok etmeden sonra konteyner artık geçerli bir LockBox dosyası değildir. CLI,
istenen yok etme işlemi başarıyla tamamlandığı için çıkış kodu 0 döndürür.
Konteynerleri açma
open bir konteyneri çıktı klasörüne çıkarır. Normal çıkarma için, katman anahtarları
oluşturma sırasında kullanılan sırayla geçirilmelidir. Bir yok etme şifresi iş akışı için ise sadece
konteyner yolu, çıktı yolu ve ana şifre olarak yok etme şifresi gereklidir.
Tek katmanlı bir konteyner açma
.\LockBox.Cli.exe open `
--container "E:\Backups\data.lbx" `
--output "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Bölünmüş bir konteyner açma
.\LockBox.Cli.exe open `
-c "E:\Backups\data.lbx" `
-o "D:\Restore" `
--master-env LBX_MASTER `
--key-env LBX_L1
Çok katmanlı bir konteyner açma
.\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
Takma adlar
open
decrypt
extractGeri yükleyerek yedeği doğrulama
Küçük bir report.csv test dosyası oluşturun. Yeni klasöre çıkarın; kaynak klasör adı içinde korunur. Tüm parçaları birlikte tutun ve değişmemiş kaynakla karşılaştırın. Çıkarma kapsayıcı yanında yazılabilir geçici alan gerektirir. Geri yüklenen şifresiz dosyaları da koruyun.
$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"Zamanlayıcı
Zamanlayıcı komutları Max sürümünde mevcuttur. Kaynak yolu, çıktı yolu, parolalar, yok etme parolası, katman anahtarları, sıkıştırma, dolgu, bölme ve kaynak içeriklerini silme ayarı dahil olmak üzere tüm görev meta verilerini şifreli bir .lbxjobs dosyasında saklar.
Zamanlanmış işler yalnızca LockBox.Cli.exe schedule run çalışırken yürütülür.
Yeniden başlatmadan sonra işçinin otomatik olarak başlamasını istiyorsanız Windows Görev Zamanlayıcı, Linux systemd, cron, bir servis kabuğu veya uzun süreli bir konsol oturumu kullanın.
Sıklık değerleri
once
30m
hourly
2h
3h
6h
9h
12h
18h
daily
2d
3d
5d
weekly
2w
monthly
2mo
3mo
6mo
9mo
yearly
Günlük şifreli yedekleme görevi ekle
$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
Başarı sonrası kaynak klasör içeriğini silen bir görev ekle
.\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
Dolgu ve bölünmüş parçalar ile aylık arşiv ekle
.\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
Kayıtlı görevleri listele
.\LockBox.Cli.exe schedule list `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD
Zamanlayıcı işçisini çalıştır
.\LockBox.Cli.exe schedule run `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json" `
--poll-seconds 30
Gereken görevleri bir kez çalıştır ve çık
.\LockBox.Cli.exe schedule run-once `
--tasks "E:\Backups\jobs.lbxjobs" `
--password-env LBX_JOBS_PASSWORD `
--state "E:\Backups\jobs.status.json"
En son çalışma zaman durumunu göster
.\LockBox.Cli.exe schedule status --state "E:\Backups\jobs.status.json"
Durum işaretleri [OK], [RUNNING], ve [FAILED]'dir.
Başarısız bir görev, nedeni içerir ve sorun tekrar ederse kullanıcıya destek ile iletişime geçmesini söyler.
JSON betikleri
Bir iş akışında birden fazla adım olduğunda --script kullanın. Betik çalıştırıcı create, open, keygen, algorithms, device-id, license ve activate destekler.
Tek betikte oluştur ve aç
{
"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"
Başarısız adımdan sonra devam et
{
"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" }
]
}
]
}
Betikten etkinleştir
{
"commands": [
{
"command": "activate",
"licenseKeyFile": "C:\\Licenses\\lockbox-license.txt"
},
{ "command": "license" }
]
}JSON alanları ve yürütme kuralları
Tablo create alanları ve open anahtar dizilerini CLI seçenekleriyle eşleştirir. Göreli yollar sürecin çalışma dizininden başlar; değişkenler ve tarihler genişletilmez. Alan başına tek gizli bilgi kaynağı kullanın. open önce keys, sonra keyEnvs ve keyFiles okur. stopOnError: true tercih edin; false ile sonraki başarı önceki hatayı gizleyebilir. JSON betikleri zamanlayıcı komutlarını desteklemez.
{
"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 | Paketlenecek ve şifrelenecek klasör. |
output / outputContainerPath | --output | Çıkış .lbx yolu. |
masterPassword | --master | Satır içi ana parola. |
masterPasswordEnv | --master-env | Ana parolayı çevresel değişkenden oku. |
masterPasswordFile | --master-file | Ana parolayı UTF-8 metin dosyasından oku. |
layers[].algorithm + layers[].key | --layer | ALGORITHM=KEY ekle. |
layers[].algorithm + layers[].keyEnv | --layer-env | ALGORITHM=ENV ekle. |
layers[].algorithm + layers[].keyFile | --layer-file | ALGORITHM=FILE ekle. |
compression / compress | --compress | Sıkıştırmayı etkinleştir. |
padding | --padding | Şifreli rastgele dolgu ekle. Birimler: B, KB, MB, GB, TB. |
paddingBytes | --padding-bytes | Dolgu boyutu ham bayt olarak. |
split / splitSize | --split | Çıkışı .lbx, .lbx1, .lbx2 olarak böl. |
splitPartSizeBytes | --split-bytes | Bölüm boyutu ham bayt olarak. |
destructionPassword | --destruction-password | Sadece maksimum satır içi imha parolası. Bunu daha sonra ana parola olarak girmek, konteyneri hemen üzerine yazar. |
destructionPasswordEnv | --destruction-password-env | Sadece maksimum imha parolasını bir çevresel değişkenden oku. |
destructionPasswordFile | --destruction-password-file | Sadece maksimum imha parolasını UTF-8 metin dosyasından oku. |
deleteSource / deleteSourceFolderAfterSuccess | --delete-source | Başarılı manuel oluşturma sonrasında kaynak klasörü sil. |
container / containerPath | --container | Mevcut .lbx konteyneri. |
keys[] | --key | Orijinal sırada satır içi katman anahtarı. |
keyEnvs[] | --key-env | Ortam değişkeninden katman anahtarı. |
keyFiles[] | --key-file | UTF-8 metin dosyasından katman anahtarı. |
Otomasyon tarifleri
Şifreli veritabanı dökümü yedekleme
$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 artefakt koruması
.\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
Güvenli ortak transferi
.\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
Uzun vadeli arşiv
.\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
Toplu dosya örneği
@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: birden çok klasörü yedekleme
Betiği belirtilen yola kaydedin. Her kaynak için benzersiz adlı kapsayıcı ve günlük oluşturur, hatada durur ve CLI çıkış kodunu korur. AES-128-GCM Free ile çalışır; sıkıştırma ve bölme Pro veya Max gerektirir.
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: gözetimsiz yedekleme
Bash betiğini LF satır sonlarıyla kaydedin. CLI ve gizli bilgileri belirtilen yollarda hazırlayın, kaynak klasörleri bağımsız değişken olarak verin. Her çalıştırma ayrı dizin alır. Hatalar günlük bırakır ve sıfır dışı kod döndürür; kaynaklar korunur.
/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İşletim sistemiyle zamanlama
Görevler yukarıdaki betikleri başlatır; create komutunun bu kullanımı Max gerektirmez. Windows kaydı yalnızca kullanıcı oturum açmışken çalışır; gerekirse Görev Zamanlayıcı’da oturum kapalı çalışmayı yapılandırın. flock kurulumunu kontrol edip cron satırını yedekleme hesabının crontab dosyasına ekleyin. İki örnek de yerel saatle 02:00’de çalışır ve zamanlanmış çalıştırmaların çakışmasını önler. İzinleri kontrol edin ve elle deneyin.
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: zamanlayıcıyı işletme
Gerekli izinlerle lockbox hizmet hesabını oluşturun, bu hesap için Max etkinleştirin ve ayrı UTF-8 parola dosyası jobs.txt hazırlayın. add ekler, güncellemez: görev başına bir kez kullanın. Görev dosyası başına tek süreç çalıştırın, değişiklikten sonra yeniden başlatın. Durum JSON’u geçmişi geri yüklemez: gecikmiş tekrarlar atlanır, gecikmiş once görevi yeniden çalışabilir. Düzenli sistem başlatmaları için tekrarlanan run-once yerine create kullanın. Zamanlayıcı çıktı adını yeniden kullanır.
/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.jsonKomut referansı
| Komut | Amacı | Diğer adlar |
|---|---|---|
help | Konsol yardımını göster. | --help, -h, ? |
device-id | Lisans işlemi için PC cihaz kimliğini yazdır. | deviceid, machine-id |
license | Mevcut edisyonu ve lisans yolunu göster. | license-status, status |
activate | Cihaza bağlı bir lisans anahtarını yükle. | activation |
algorithms | Algoritmaları ve minimum edisyonları listele. | profiles, list-algorithms |
keygen | Rastgele anahtarlar oluştur. | generate-key, generate-keys |
create | Şifreli kapsayıcı oluştur. | encrypt |
open | Şifreli kapsayıcıyı aç. | decrypt, extract |
schedule | Planlanmış görevleri yönet ve çalıştır. | scheduler, scheduled-tasks |
script | JSON otomasyon dosyasını çalıştır. | --script |
Seçenekleri oluştur
--source, -s | Paketlenecek ve şifrelenecek klasör. |
--output, -o | Çıkış .lbx yolu. |
--master | Satır içi ana parola. |
--master-env | Ana parolayı çevresel değişkenden oku. |
--master-file | Ana parolayı UTF-8 metin dosyasından oku. |
--layer | ALGORITHM=KEY ekle. |
--layer-env | ALGORITHM=ENV ekle. |
--layer-file | ALGORITHM=FILE ekle. |
--algorithm, -a | --key, --key-env veya --key-file ile eşleştirilen alternatif algoritma formu. |
--compress | Sıkıştırmayı etkinleştir. |
--no-compress | Daha önce ayarlandıysa sıkıştırmayı devre dışı bırak. |
--padding | Şifreli rastgele dolgu ekle. Birimler: B, KB, MB, GB, TB. |
--padding-bytes | Dolgu boyutu ham bayt olarak. |
--split | Çıkışı .lbx, .lbx1, .lbx2 olarak böl. |
--split-bytes | Bölüm boyutu ham bayt olarak. |
--no-split | Daha önce ayarlandıysa bölmeyi devre dışı bırak. |
--destruction-password | Sadece maksimum satır içi imha parolası. Bunu daha sonra ana parola olarak girmek, konteyneri hemen üzerine yazar. |
--destruction-password-env | Sadece maksimum imha parolasını bir çevresel değişkenden oku. |
--destruction-password-file | Sadece maksimum imha parolasını UTF-8 metin dosyasından oku. |
--delete-source | Başarılı manuel oluşturma sonrasında kaynak klasörü sil. |
Seçenekleri aç
--container, -c | Mevcut .lbx konteyneri. |
--output, -o | Çıkarma klasörü. |
--master, --master-env, --master-file | Ana şifre kaynağı. |
--key, -k | Orijinal sırada satır içi katman anahtarı. |
--key-env | Ortam değişkeninden katman anahtarı. |
--key-file | UTF-8 metin dosyasından katman anahtarı. |
— | Yıkım-şifre iş akışları için izin verilir. Gerekli anahtarlar eksikse normal çıkarma, meta veri okunduktan sonra başarısız olur. |
Zamanlayıcı seçenekleri
schedule add | Şifreli .lbxjobs için bir görev ekle. |
schedule list | Kayıtlı görevleri göster. |
schedule run | Uzun süreli çalışanı başlat. |
schedule run-once | Vadesi geçmiş görevleri bir kez çalıştır ve çık. |
schedule status | En son çalışma zamanı durumu JSON'unu oku. |
--tasks, --file | Şifreli görev dosyası yolu. |
--password, --password-env, --password-file | Görev dosyası için şifre. |
--state, --status-file | Çalışma zamanı durum JSON yolu. |
--name | schedule add için görev adı. |
--frequency, --every | Görev sıklığı. |
--start, --start-at | Yerel başlangıç tarihi/saat. |
--delete-source-contents | Başarılı zamanlanmış çalıştırmadan sonra orijinal kaynak klasör içeriğini sil. |
--poll-seconds | schedule run için çalışan yoklama aralığı. |
Konsol dilini seçmek için --language veya --lang, olağan ilerleme iletilerini gizlemek için --quiet kullanın; hatalar standart hata akışına gönderilmeye devam eder. Ctrl+C iptal ister ve 1 kodunu döndürür. Kod 2 geçersiz komut sözdizimi anlamına gelir; kod 3, geçerli sürümde bir oluşturma özelliğinin kullanılamadığını belirtir. Kod 0, imha parolasının bilerek tetiklenmesini de kapsar; bu nedenle tek başına dosyaların çıkarıldığını kanıtlamaz. Sonraki otomasyon adımlarından önce beklenen çıktıyı doğrulayın.
Çıkış kodları ve izleme
schedule run-once başarısız görevlerde bile sıfır döndürebilir; schedule status durum yokken de sıfır verir. savedAt, lastSuccessAt ve lastError alanlarını kontrol edin; [OK] yalnızca Ready anlamına gelebilir. İzleyici günlük yedek, 30 saniyelik sorgu ve 26 saat içinde başarı bekler. Eşikleri uyarlayın. JSON durumları sayısaldır; --quiet başarılı create/open komutlarının olağan çıktısını gizler.
$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 -> FailedSorun Giderme
Neden çıkış kodu 3 alıyorum?
Mevcut sürüm istenen özelliğe izin vermiyor: çok fazla katman, sıkıştırma, kripto dolgu, bölme, zamanlayıcı veya daha güçlü bir algoritma.
Çıkarma neden kimlik doğrulama etiketi hatasıyla başarısız oluyor?
Ana parola, katman anahtarı, katman sırası veya konteyner dosyası yanlış. Bölünmüş konteynerler için, her parçanın aynı klasörde olduğundan emin olun.
Konsoleyi kapattıktan sonra zamanlayıcı neden çalışmıyor?
schedule run çalışan işlemdir. Açık tutun veya Windows Görev Zamanlayıcısı veya bir hizmet sarmalayıcıdan başlatın.
schedule add neden hemen başarısız oluyor?
Zamanlayıcı, görevi kaydetmeden önce lisansı, kaynak klasörü, çıktı yolunu, algoritmaları, şifreleri ve kullanılabilir disk alanını doğrular.
Zamanlayıcı şifrelerini .lbxjobs dosyasında saklayabilir miyim?
Evet. .lbxjobs dosyası zamanlayıcı dosya parolasıyla şifrelenir ve şifreleme şifreleri ve katman anahtarları dahil olmak üzere tüm görev meta verilerini saklar.
Planlanmış bir çalıştırma önceki çalıştırmayla çakışırsa ne olur?
Yeni olay atlanır, görev başarısız durumunu açıklamayla bildirir ve gelecekteki çalıştırmalar aktif çalışma bitiminden sonra devam eder.
Shell geçmişinde sırları nasıl önlerim?
--master-env, --master-file, --layer-env, --layer-file, --destruction-password-env, --destruction-password-file, --password-env ve --password-file kullanın.