dsh-vps-ops
先读后写的 VPS 运维工具:systemd 状态与操作、磁盘占用、Docker 状态、日志尾部、可配置备份与静默时段计划。
安装
dsh plugin --profile web add dsh-vps-ops
沙箱测试
这个插件还没测过。提交测试 →
README
dsh-vps-ops
DeepSeek Harness için
önce-okuyan VPS işletim araçları.
dsh-vps-ops, DSH ajanına sunucu yönetimi için küçük ve açık bir araç seti
verir: systemd durumu, disk kullanımı, Docker durumu, log kuyrukları,
ayarlanmış yedek komutları ve sessiz-saat kontrolü. Sunucuya özel hiçbir şey
koda gömülü değildir — bütün unit, konteyner, yedek komutu ve zaman penceresi
eklenti ayarlarından gelir.
Varsayılan olarak salt-okunur. Yıkıcı araçlar salt-okunur modda çalışmayı
reddeder, yalnızca izin listesindeki hedefleri kabul eder ve çalışmadan önce
kullanıcıdan onay ister.
Araçlar
Araç · Tür · Ne yapar
service_status · salt-okunur · systemctl durumu, alt durum, restart sayısı, PID, başlama zamanı, sunucu uptime'ı, son hata log satırları. Tek unit veya hepsi.
disk_usage · salt-okunur · df -h /, inode kullanımı ve / altındaki en büyük 5 üst düzey dizin.
docker_status · salt-okunur · Çalışan konteynerler veya tek konteyner için docker inspect durum/sağlık/restart bilgisi.
log_tail · salt-okunur · Ayar listesindeki unit için journalctl kuyruğu ya da izin verilen log dizinlerindeki bir dosyanın sonu. En çok 200 satır.
quiet_hours_status · salt-okunur · Saf zamanlama hesabı: pencereleri listeler ve şu an içinde mi olduğunu söyler. Hiçbir şeyi başlatıp durdurmaz.
service_action · yıkıcı · Onaydan sonra tek unit için systemctl start · stop · restart.
backup_run · yıkıcı · Onaydan sonra ayarlanmış tek yedek komutunu çalıştırır.
Kurulum
dsh plugin --profile web add dsh-vps-ops systemctl restart dsh-web # veya DSH sürecinizi yeniden başlatın
Sonra profilin cordis.patch.yml dosyasında sunucunuzun unit'lerini izin
listesine ekleyin:
- id: vps-ops
config:
services:
- label: DSH Web
unit: dsh-web
- label: OpenBot
unit: openbot
containers:
- label: OpenViking
name: openviking
backups:
- id: openviking-daily
label: OpenViking yedeği
command: ['/usr/local/bin/openviking-backup.sh']
timeoutMs: 120000
quietHours:
timeZone: UTC
windows:
- 'Mon-Fri 01:00-04:00'
- 'Mon-Fri 06:00-10:00'
logs:
dirs: ['/var/log']
safety:
readOnly: false
requireApproval: true
timeoutMs: 15000
maxOutputBytes: 65536
Ayar bloğu olmadan da eklenti açılır; yalnızca "hiçbir şey ayarlanmamış" der.
Ayarlar
Anahtar · Varsayılan · Anlamı
services · [] · { label, unit } systemd unit izin listesi.
containers · [] · { label, name } Docker konteyner izin listesi.
backups · [] · { id, label, command, timeoutMs }; command argv dizisi (tercih edilen) veya kabuk dizgesi.
quietHours.timeZone · UTC · Pencereleri değerlendirirken kullanılan IANA saat dilimi.
quietHours.windows · [] · "<günler> SS:DD-SS:DD"; gün aralıkları sarabilir (Fri-Mon), bitiş başlangıçtan önceyse pencere gece yarısını geçer.
logs.dirs · ["/var/log"] · log_tail dosya okuyabileceği dizinler.
audit.file · <DSH_HOME>/logs/vps-ops-audit.log · Onaylı işlemlerin kaydedildiği dosya.
safety.readOnly · true · true iken service_action ve backup_run reddeder.
safety.requireApproval · true · true iken yıkıcı araçlar önce onay ister.
safety.timeoutMs · 15000 · Varsayılan komut zaman aşımı.
safety.maxOutputBytes · 65536 · Çağrı başına çıktı sınırı.
Güvenlik modeli
- Model girdisi kabuğa interpolate edilmez. Komutlar çalıştırılabilir dosya
- argv dizisi olarak koşar. İsimler argv'ye girmeden doğrulanır; bu,
--help
adlı bir unit gibi seçenek enjeksiyonunu da engeller.
- Yalnızca izin listeleri.
service_action,docker_status <konteyner>,
log_tail <unit> ve backup_run sadece ayarlanmış isimleri kabul eder.
- Dosyalar log dizinlerinde kalır.
log_tail <dosya>sembolik bağları
çözer ve logs.dirs dışındaki her şeyi reddeder.
- Sınırlı iş. Her komutun duvar saati zaman aşımı ve stdout/stderr bayt
sınırı vardır; taşan çıktı alt süreci öldürür.
- Sır taşınmaz. Alt süreçler en az ortam değişkeniyle çalışır; hiçbir araç
kimlik bilgisi okumaz veya iletmez.
- Onay kapalı-kapıya (fail-closed). Onay mekanizması yoksa veya hata
verirse işlem çalışmaz.
- Onaylı her işlem için tek satır denetim kaydı (tek satır JSON).
Gereksinimler
- DSH
>= 0.2.1-rc.4(Node^22.19.0 || >=24.0.0). - systemd araçları için
systemctl/journalctl, Docker aracı içindocker.
Eksik ikili dosyalar çökme değil, araç çıktısı olarak bildirilir.
Geliştirme
node --test
Test seti; pencere ayrıştırma/değerlendirme, argv kurma, UTF-8 güvenli çıktı
kırpma, çıktı ayrıştırıcıları ve yıkıcı işlem kapısını (salt-okunur reddi,
reddedilen onay, onay yok, onaylı çalıştırma, denetim satırı) kapsar.
Lisans
MIT
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:2,最后更新 2026-10-31