- 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>
103 lines
2.1 KiB
Markdown
103 lines
2.1 KiB
Markdown
# Synology API 工具使用說明
|
||
|
||
這個目錄放的是 Synology DSM API 相關腳本:
|
||
|
||
- `synology_api.py`:共用 API client library
|
||
- `synology_api_login.py`:登入、復用 SID、抓系統資訊
|
||
|
||
---
|
||
|
||
## 1) 先設定環境變數(建議)
|
||
|
||
可放在 workspace 根目錄 `.env`:
|
||
|
||
```env
|
||
DS_URL=https://syno.lotimmy.com/
|
||
DS_USER=你的帳號
|
||
DS_PASSWORD=你的密碼
|
||
|
||
# 可選:輸出檔案路徑
|
||
DS_LOGIN_RESULT=tmp/synology_api_login_result.json
|
||
DS_SESSION_FILE=tmp/synology_session.json
|
||
DS_SYSINFO_FILE=tmp/synology_system_info.json
|
||
```
|
||
|
||
---
|
||
|
||
## 2) 基本用法
|
||
|
||
### 只登入(會先嘗試沿用舊 SID,失效才重登)
|
||
|
||
```bash
|
||
python3 synology_api_login.py
|
||
```
|
||
|
||
### 登入後抓系統資訊
|
||
|
||
```bash
|
||
python3 synology_api_login.py --system-info
|
||
```
|
||
|
||
### 顯示人類可讀摘要
|
||
|
||
```bash
|
||
python3 synology_api_login.py --system-info --summary
|
||
```
|
||
|
||
### 輸出精簡 JSON(適合餵腳本)
|
||
|
||
```bash
|
||
python3 synology_api_login.py --system-info --json-compact
|
||
```
|
||
|
||
---
|
||
|
||
## 3) 常用參數
|
||
|
||
- `--url`:DSM URL(預設取 `DS_URL`)
|
||
- `--user`:DSM 帳號(預設取 `DS_USER`)
|
||
- `--password`:DSM 密碼(預設取 `DS_PASSWORD`)
|
||
- `--system-info`:抓系統資訊 bundle
|
||
- `--summary`:印出摘要(需搭配 `--system-info`)
|
||
- `--json-compact`:印出精簡 JSON(需搭配 `--system-info`)
|
||
|
||
範例:
|
||
|
||
```bash
|
||
python3 synology_api_login.py \
|
||
--url "https://192.168.42.20:5001" \
|
||
--user "admin" \
|
||
--password "******" \
|
||
--system-info --json-compact
|
||
```
|
||
|
||
---
|
||
|
||
## 4) 主要輸出檔
|
||
|
||
- `tmp/synology_api_login_result.json`:登入結果(含是否沿用 cached SID)
|
||
- `tmp/synology_session.json`:SID session cache
|
||
- `tmp/synology_system_info.json`:完整系統資訊 API 回傳
|
||
|
||
---
|
||
|
||
## 5) 目前精簡 JSON 會包含
|
||
|
||
- `model`
|
||
- `serial`
|
||
- `ip`(優先 `eth0`)
|
||
- `dsm_version`
|
||
- `cpu_usage_pct`, `cpu_clock_mhz`
|
||
- `memory_total_mb`, `memory_usage_pct`
|
||
- `temperature_c`
|
||
- `volumes`
|
||
- `disk_size_usage`(同時有 `*_bytes` 與 `*_gib`)
|
||
- `disk_health`(vendor 已去除多餘空白)
|
||
- `time`, `uptime`
|
||
|
||
---
|
||
|
||
## 6) 執行位置
|
||
|
||
本 README 的指令都以「目前目錄在 `scripts/synology/`」為前提。
|