中文EN

dsh-vps-ops

toolsnpmMIT

先读后写的 VPS 运维工具:systemd 状态与操作、磁盘占用、Docker 状态、日志尾部、可配置备份与静默时段计划。

下载量 / Downloads
397

安装

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çin docker.

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

链接

GitHub · Homepage · npm

同类插件