- Add synology_api.py: DSM API client library - Add synology_api_login.py: CLI tool for login and system info - Add SKILL.md: Skill definition with usage examples - Add CLAUDE.md: Developer documentation - Add references/: Example configs and usage guide Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
95 lines
2.4 KiB
Markdown
95 lines
2.4 KiB
Markdown
---
|
||
name: synology
|
||
description: 透過 Synology DSM WebAPI 進行登入、重用 SID session、抓取 NAS 系統資訊與輸出精簡 JSON 摘要。當使用者要查 Synology NAS 狀態、DSM 版本、CPU/記憶體用量、溫度、Volume 容量、硬碟健康、網路 IP,或要把 Synology 查詢流程做成可重複執行腳本時使用。
|
||
---
|
||
|
||
# Synology
|
||
|
||
使用這個 skill 操作 Synology DSM API,不走瀏覽器。
|
||
|
||
## 快速開始
|
||
|
||
先確認環境變數或 profile 可用。可參考:
|
||
- `references/env.example`
|
||
- `references/hosts.json`
|
||
- `references/usage.md`
|
||
|
||
建議做法:
|
||
- 多台 Synology:`references/hosts.json` 放 `url`、`user`、`password_env`
|
||
- 密碼放 workspace 根目錄 `.env`
|
||
- 腳本會自動讀 `.env`,不用每次手動 `export`
|
||
|
||
常用指令:
|
||
|
||
```bash
|
||
python3 skills/synology/scripts/synology_api_login.py --system-info --summary
|
||
```
|
||
|
||
若要輸出精簡 JSON:
|
||
|
||
```bash
|
||
python3 skills/synology/scripts/synology_api_login.py --system-info --json-compact
|
||
```
|
||
|
||
若有多台 Synology,建議改用 profile:
|
||
|
||
```bash
|
||
python3 skills/synology/scripts/synology_api_login.py --profile home-nas --system-info --summary
|
||
```
|
||
|
||
搭配 workspace 根目錄 `.env`:
|
||
|
||
```env
|
||
DS_PASSWORD_HOME=你的密碼
|
||
DS_PASSWORD_OFFICE=你的密碼
|
||
```
|
||
|
||
## 任務
|
||
|
||
### 1. 登入 DSM
|
||
|
||
```bash
|
||
python3 skills/synology/scripts/synology_api_login.py
|
||
```
|
||
|
||
重點:
|
||
- 會先嘗試沿用已快取的 SID
|
||
- SID 失效才重新登入
|
||
- 預設吃 `DS_URL`、`DS_USER`、`DS_PASSWORD`
|
||
- 若指定 `--profile`,則改讀 `references/hosts.json`
|
||
|
||
### 2. 查系統資訊
|
||
|
||
```bash
|
||
python3 skills/synology/scripts/synology_api_login.py --system-info --summary
|
||
```
|
||
|
||
回覆時優先整理:
|
||
- NAS 型號
|
||
- DSM 版本
|
||
- IP
|
||
- CPU 使用率
|
||
- 記憶體使用率
|
||
- 溫度
|
||
- Volume 容量
|
||
- 硬碟健康
|
||
|
||
### 3. 輸出給其他腳本吃的 JSON
|
||
|
||
```bash
|
||
python3 skills/synology/scripts/synology_api_login.py --system-info --json-compact
|
||
```
|
||
|
||
適合:
|
||
- 後續 shell / Python 串接
|
||
- 定期監控
|
||
- 給其他 skill 或腳本使用
|
||
|
||
## 注意事項
|
||
|
||
- 若 DSM 使用自簽章憑證,這套腳本預設可接受;如需強制驗證憑證,再調整 client。
|
||
- 若 `tmp/` 內已有 session cache,腳本可能直接沿用舊 SID。
|
||
- 若查不到資料,先確認 `DS_URL`、`DS_USER`、`DS_PASSWORD` 是否正確。
|
||
- 若只是要看怎麼設定 `.env`,先讀 `references/env.example`。
|
||
- 若只是要看用法範例,先讀 `references/usage.md`。
|