TOS CLI
简介
TOS 7 CLI 是铁威马 TOS 7 系统的命令行管理工具,提供与 Web 管理界面等价的操作能力。
CLI 已预装于 TOS 系统,用户通过 SSH 连接到 TNAS 设备后,可直接执行 tos 命令,无需额外安装。
主要特点
- 开箱即用:已集成在 TOS 系统中,SSH 登录后直接使用
- 交互与非交互双模式:既适合管理员日常维护,也适合脚本和自动化任务
- JSON 输出支持:便于程序解析和 CI/CD 集成
- 会话缓存:一次登录,后续命令自动复用会话
- 全面管理能力:涵盖系统、存储、网络、用户、应用、服务等全方位管理
快速开始
# 1. SSH 登录到 TNAS 设备
ssh admin@<你的TNAS-IP>
# 2. 查看所有可用命令
tos --help
# 3. 查看系统信息(无需认证)
tos info
# 4. 查看文件服务状态(无需认证)
tos fileservice status
# 5. 以 JSON 格式输出(便于脚本解析)
tos info --json
全局选项
以下选项适用于所有命令:
| 选项 | 简写 | 说明 |
|---|---|---|
--help | - | 显示命令帮助信息 |
--version | -v | 显示版本号(可搭配 --json 输出结构化信息) |
--json | - | 输出 JSON 格式(仅查询类命令支持) |
--yes | -y | 跳过高风险操作的确认提示(非交互模式必须使用) |
--debug | - | 启用调试输出,显示详细执行过程 |
--user | -u | 指定用户名(覆盖环境变量) |
--pass | -P | 指定密码(覆盖环境变量) |
--token | - | 指定会话 Token(覆盖环境变量和缓存) |
版本信息示例
tos --version
TOS CLI 1.0.7
TOS 7.0.0
Build 20260624
tos --version --json
{
"cli_version": "1.0.7",
"tos_version": "7.0.0",
"build": "20260624"
}
认证与会话管理
大部分远程命令(用户管理、存储管理、应用中心、风扇控制、日志管理等)需要通过 HTTP 与 TOS 守护进程通信,需要认证。
本地命令(如 tos info、tos fileservice、tos ssh status、tos service 等)直接读取系统文件或调用 systemd,无需认证。
认证方式优先级(从高到低)
- 命令行标志
--user/--pass或--token - 环境变量
TOS_TOKEN - 环境变量
TOS_USER/TOS_PASS - 缓存会话文件
~/.tos/session.json - 交互式提示输入
方式一:会话缓存(推荐日常使用)
使用 tos login 一次登录,后续命令自动复用缓存会话(存储于 ~/.tos/session.json,权限 0600,密码使用 RSA 加密存储)。
# 交互式登录(提示输入用户名和密码)
tos login
# 非交互式登录
tos login -u admin -P yourpassword
# 后续命令无需再提供凭据
tos disk list
tos user list --json
# 清除缓存的会话
tos logout
方式二:Token 模式(适合 CI/CD 和无状态环境)
生成便携 Token,通过环境变量传入。
# 生成 Token(仅输出 Token 字符串)
tos login -u admin -P yourpassword --token-only
# 输出示例: tos_v1.eyJ2ZXJzaW9uIjoxLC...
# 通过环境变量传入 Token
export TOS_TOKEN="tos_v1.eyJ2ZXJzaW9uIjoxLC..."
tos disk list --json
方式三:命令行标志或环境变量(传统方式)
# 命令行标志
tos user list --user admin --pass yourpassword
# 环境变量
export TOS_USER=admin
export TOS_PASS=yourpassword
tos user list
环境变量参考
| 变量名 | 说明 | 默认值 |
|---|---|---|
TOS_DAEMON_URL | 守护进程地址 | http://localhost:5050 |
TOS_USER | 登录用户名 | - |
TOS_PASS | 登录密码(明文,有泄露风险) | - |
TOS_TOKEN | 会话 Token(由 tos login --token-only 生成) | - |
TOS_SESSION_DIR | 会话文件存储目录 | ~/.tos |
命令分类与权限说明
命令是否需要认证,取决于该命令是否需要与守护进程通信:
| 是否需要认证 | 命令组 |
|---|---|
| 无需认证 | info、ssh、buzzer、fileservice、service、firewall(status/enable/disable)、reboot、poweroff、version |
| 需要认证 | user、user-group、fan、log、update、shared-folder、app、disk、array、volume、storage info、network info、firewall rule、tnas-online |
命令参考
一、系统信息与状态
tos info – 系统总览
显示 TOS 版本、硬件、CPU、内存、温度、风扇等综合信息。
tos info [--json]
输出示例(表格):
PROPERTY VALUE
TOS Version 7.0.0447
BIOS Version 6.00
Model F4-424
Uptime 12 days 05:34:48
IP Address 192.168.1.20
CPU Model Intel N95
CPU Usage 18%
Memory Total 8 GB
Memory Usage 42%
System Temp 41 °C
CPU Temp 52 °C
Fan Speed 1200 RPM
JSON 输出(tos info --json):
{
"tos_version": "7.0.0447",
"bios_version": "6.00",
"model": "F4-424",
"uptime": "12 days 05:34:48",
"ip_address": "192.168.1.20",
"cpu_model": "Intel N95",
"cpu_usage": 18,
"memory_total": "8 GB",
"memory_usage": 42,
"system_temperature": 41,
"cpu_temperature": 52,
"fan_speed": 1200
}
温度和风扇信息依赖硬件传感器,虚拟机或无传感器设备显示
-(JSON 中为null)。
二、系统管理(重启/关机)
注意:
reboot和poweroff为远程命令,需要认证。
tos reboot – 重启系统(高风险)
tos reboot [--yes]
- 交互模式会询问确认,非交互必须加
--yes - 通过 daemon API
PUT /system/reboot执行 - 输出:
Reboot scheduled
tos poweroff – 安全关机(高风险)
tos poweroff [--yes]
- 交互模式会询问确认,非交互必须加
--yes - 通过 daemon API
PUT /system/poweroff执行 - 输出:
Power off scheduled
三、SSH 服务管理
父命令:tos ssh(本地命令,无需认证)
tos ssh status – 查看 SSH 状态
tos ssh status [--json]
输出示例:
PROPERTY VALUE
SSH Status enabled
Port 22
tos ssh enable – 启用 SSH
tos ssh enable [--port <port>]
--port指定端口,默认 22- 动作:写入端口配置到
/etc/ssh/sshd_config,执行systemctl enable+systemctl start - 输出:
SSH enabled on port 22
tos ssh disable – 禁用 SSH(高风险)
tos ssh disable [--yes]
- 高风险操作:可能断开当前远程会话
- 交互模式显示确认提示,非交互模式必须传
--yes - 输出:
SSH disabled
四、蜂鸣器管理
父命令:tos buzzer(本地命令,无需认证)
tos buzzer status – 查看蜂鸣器状态
tos buzzer status [--json]
输出示例:
PROPERTY VALUE
Buzzer Status enabled
tos buzzer enable – 启用蜂鸣器
tos buzzer enable
- 启动蜂鸣器警报脚本(
/etc/tos/scripts/warnning) - 若蜂鸣器已启用则返回冲突错误(退出码 4)
- 输出:
Buzzer enabled
tos buzzer disable – 禁用蜂鸣器
tos buzzer disable
- 输出:
Buzzer disabled
五、风扇控制
父命令:tos fan(远程命令,需认证)
tos fan status – 查看风扇状态
tos fan status [--json]
输出示例:
PROPERTY VALUE
Fan Control enabled
Mode auto
Speed 1200 RPM
tos fan set-mode – 设置风扇模式
tos fan set-mode --mode <auto|low|mid|high>
模式说明:
| 模式 | 说明 |
|---|---|
auto | 智能模式(系统自动调节) |
low | 低速(安静) |
mid | 中速 |
high | 高速(最大散热) |
- 设置模式时保留现有蜂鸣器配置不变
- 输出:
Fan mode set to auto
六、防火墙管理
父命令:tos firewall(混合模式)
| 子命令 | 说明 | 认证 |
|---|---|---|
status | 查看防火墙启用状态 | 无需认证 |
enable | 启用防火墙 | 无需认证 |
disable | 禁用防火墙(高风险) | 无需认证 |
rule | 列出防火墙规则 | 需要认证 |
tos firewall status – 查看防火墙状态
tos firewall status [--json]
输出示例:
PROPERTY VALUE
Firewall Status enabled
tos firewall enable – 启用防火墙
tos firewall enable
- 执行
systemctl enable+systemctl startiptables.service - 若已启用则输出
Firewall already enabled并返回 0(幂等) - 输出:
Firewall enabled
tos firewall disable – 禁用防火墙(高风险)
tos firewall disable [--yes]
- 高风险操作:禁用防火墙将暴露所有网络端口
- 交互模式显示确认提示,非交互模式必须传
--yes - 若已禁用则输出
Firewall already disabled并返回 0(幂等) - 输出:
Firewall disabled
tos firewall rule – 列出防火墙规则
tos firewall rule [--detail] [--json]
- 从守护进程 API 获取规则列表
--detail增加 DESTINATION 和 DESCRIPTION 列- 兼容别名:
tos firewall list
输出示例:
RULE ID ACTION PROTOCOL SOURCE PORT
1 allow tcp 0.0.0.0/0 22
七、文件服务管理
父命令:tos fileservice(别名 tos fs)
本地命令,无需认证。直接通过读写 /etc/tos/config/*.json 配置文件和控制 systemd 单元来管理服务。
支持的服务:
| 服务名 | 说明 | 默认端口 |
|---|---|---|
smb | SMB/CIFS 文件共享 | 445 |
nfs | NFS 文件共享 | 2049 |
ftp | FTP 文件传输 | 21 |
webdav | WebDAV 文件共享 | 80 |
rsync | Rsync 文件同步 | 873 |
服务名匹配不区分大小写。
tos fileservice status – 查看文件服务状态
tos fileservice status [service-name] [--json]
- 无参数:显示全部 5 种文件服务状态
- 指定服务名:仅显示该服务
输出示例:
SERVICE ENABLED STATUS PORT
smb true running 445
nfs false stopped -
ftp true running 21
webdav false stopped -
rsync false stopped -
tos fileservice enable – 启用文件服务
tos fileservice enable <service-name>
- 校验服务名(仅允许 smb/nfs/ftp/webdav/rsync,不区分大小写)
- 动作:写入配置文件
enable: true,执行systemctl enable和systemctl start - 若已启用则输出
File service already enabled并返回 4(状态冲突) - 输出:
File service enabled: smb
tos fileservice disable – 禁用文件服务(高风险)
tos fileservice disable <service-name> [--yes]
- 高风险操作:可能中断活动文件访问
- 交互模式显示确认提示,非交互模式必须传
--yes - 若已禁用则输出
File service already disabled并返回 0(幂等) - 输出:
File service disabled: smb
八、系统服务管理
父命令:tos service
本地命令,基于 systemd,无需认证。管理底层系统服务(smb/nfs/ftp/sftp/rsync/ssh/telnet/webdav/webdavs)。
tos service list – 列出系统服务
tos service list [--status <running|stopped>] [--json]
输出示例:
SERVICE NAME STATUS AUTOSTART
ftp stopped false
nfs stopped false
smb running false
ssh running true
tos service start – 启动服务
tos service start <service-name>
- 幂等:已运行时输出
Service already running: smb并返回 0 - 输出:
Service started: smb
tos service stop – 停止服务(高风险)
tos service stop <service-name> [--yes]
- 高风险操作:可能中断活跃用户
- 交互模式显示确认提示,非交互模式必须传
--yes - 幂等:已停止时输出
Service already stopped: smb并返回 0 - 输出:
Service stopped: smb
tos service restart – 重启服务
tos service restart <service-name>
- 若未运行则等同于 start
- 输出:
Service restarted: smb
tos service set – 设置开机自启动
tos service set <service-name> --autostart <true|false>
- 基于 systemd enable/disable
- 输出:
Service autostart set: smb=true
九、存储管理
注意:所有存储管理命令均为远程命令,需要认证。通过 Unix socket(
/var/run/socks/storage.sock)与存储后端通信。
tos storage info – 存储总览
tos storage info [--scope <disk|volume|raid|all>] [--json]
--scope过滤显示范围,默认all- 健康磁盘统计基于存储池级 Health 枚举
输出示例:
PROPERTY VALUE
Disk Count 1
Healthy Disks 0
Warning Disks 0
Failed Disks 1
Array Count 1
Volume Count 1
External Devices 0
Hyper Cache disabled
tos disk – 磁盘管理
父命令:tos disk
| 子命令 | 说明 |
|---|---|
list | 列出磁盘,支持排序和详情 |
mount | 挂载磁盘 |
unmount | 卸载磁盘(高风险,需 --yes) |
# 列出磁盘
tos disk list [--detail] [--sort <size|status|temp>] [--json]
# 挂载磁盘
tos disk mount sda
# 卸载磁盘(高风险)
tos disk unmount sda --yes
list 输出示例:
DISK ID MODEL CAPACITY HEALTH TEMP SYSTEM DISK
HDD1 ST2000VX017-3CV102 2.00 TB normal - No
tos array – 阵列管理
父命令:tos array
| 子命令 | 说明 |
|---|---|
list | 列出存储阵列,支持排序和详情 |
mount | 挂载阵列 |
delete | 删除阵列(高风险,不可逆,需 --yes) |
# 列出阵列
tos array list [--detail] [--sort <size|status>] [--json]
# 挂载阵列
tos array mount <array-uuid>
# 删除阵列(高风险)
tos array delete <array-uuid> --yes
tos volume – 卷管理
父命令:tos volume
| 子命令 | 说明 |
|---|---|
list | 列出卷,支持排序和详情 |
mount | 挂载卷 |
delete | 删除卷(高风险,不可逆,需 --yes) |
# 列出卷
tos volume list [--detail] [--sort <size|status>] [--json]
# 挂载卷
tos volume mount <volume-uuid>
# 删除卷(高风险)
tos volume delete <volume-uuid> --yes
tos shared-folder – 共享文件夹管理
父命令:tos shared-folder
| 子命令 | 说明 |
|---|---|
list | 列出共享文件夹 |
show | 查看指定文件夹的详细配置 |
add | 创建共享文件夹 |
delete | 删除共享文件夹(高风险,不可逆,需 --yes) |
# 列出共享文件夹
tos shared-folder list [--detail] [--json]
# 查看文件夹详情
tos shared-folder show <folder-id> [--json]
# 创建共享文件夹(非交互示例)
tos shared-folder add myshare --path /Volume3/myshare --device Volume3 --yes
# 删除共享文件夹(高风险)
tos shared-folder delete myshare --yes
add 命令主要参数:
| 参数 | 说明 |
|---|---|
<folder-name> | 文件夹名称,必填 |
--path | 挂载路径,非交互必填 |
--device | 存储设备,非交互必填 |
--desc | 文件夹描述 |
--encrypt | 启用加密 |
--recycle | 回收站:0=关闭,1=开启,2=仅管理员访问 |
--hidden | 隐藏文件夹 |
--quota | 配额:-1=禁用,0=关闭,1=启用 |
--save-days | 回收站保留天数(默认 30) |
--time-machine | 启用 Time Machine |
十、用户管理
注意:用户管理命令均为远程命令,需要认证。
tos user – 本地用户管理
父命令:tos user
| 子命令 | 说明 |
|---|---|
list | 列出所有用户,可按状态过滤 |
add | 创建用户 |
delete | 删除用户(高风险,不可逆,需 --yes) |
online | 查看当前在线用户 |
# 列出用户
tos user list [--status active|inactive] [--json]
# 创建用户(非交互,推荐使用 --password-stdin)
echo 'SecurePass123' | tos user add bob --password-stdin --group users --enabled true --yes
# 删除用户(高风险)
tos user delete bob --yes
# 查看在线用户
tos user online [--json]
add 命令参数说明:
| 参数 | 说明 |
|---|---|
<username> | 用户名,必填 |
--password | 明文密码(不推荐,会暴露在进程列表中) |
--password-stdin | 从标准输入读取密码(推荐) |
--group | 主用户组,默认 users |
--enabled | 是否启用,默认 true |
--yes | 跳过交互确认 |
online 输出示例:
USERNAME IP LOGIN TIME SERVICE
admin 192.168.1.10 2026-04-23T09:12:00 TOS Web
tos user-group – 用户组管理
父命令:tos user-group
| 子命令 | 说明 |
|---|---|
list | 列出所有用户组 |
add | 创建用户组 |
delete | 删除用户组(高风险,不可逆,需 --yes) |
# 列出用户组
tos user-group list [--detail] [--json]
# 创建用户组
tos user-group add developers --description "Development Team"
# 删除用户组(高风险)
tos user-group delete developers --yes
list 输出示例:
GROUP NAME DESCRIPTION MEMBER COUNT
admin Administrators 2
users Normal users 8
十一、应用中心管理
注意:应用管理命令均为远程命令,需要认证。通过 Unix socket(
/var/api/Application.sock)与应用中心后端通信。
父命令:tos app
所有子命令支持应用 ID 或显示名(精确匹配,优先 ID)。
| 子命令 | 说明 |
|---|---|
list | 列出所有应用 |
info | 显示指定应用的详细信息 |
install | 安装应用,可指定安装路径(需 --yes) |
uninstall | 卸载应用(高风险,--clean 删除残留数据,需 --yes) |
update | 更新应用(不指定应用则更新全部,需 --yes) |
enable | 启用应用 |
disable | 禁用应用(高风险,可能中断正在使用的服务,需 --yes) |
status | 检查应用状态 |
# 列出应用
tos app list [--status running|stopped] [--refresh] [--json]
# 查看应用详情
tos app info mysql [--json]
# 安装应用
tos app install DockerEngine --path /Volume1 --yes
# 卸载应用(高风险)
tos app uninstall mysql --yes
# 更新所有应用
tos app update --yes
# 启用/禁用应用
tos app enable mysql
tos app disable mysql --yes
# 查看应用状态
tos app status mysql [--json]
list 输出示例:
APP ID NAME VERSION STATUS CATEGORY SIZE
mysql MariaDB 10.3.33 running Utilities 17.9 MB
plex Plex Media 1.42.2 running Multimedia 200.0 MB
status 输出示例:
PROPERTY VALUE
App ID mysql
Installed Yes
Running Yes
Version 10.3.33
十二、网络管理
tos network info – 查看网络配置
父命令:tos network(远程命令,需认证)
显示设备名、HTTP/HTTPS 端口、网卡接口、IP、MAC、MTU、DNS、网关等。
tos network info [--scope <all|ip|dns|gateway>] [--json]
--scope过滤显示范围,默认all
输出示例:
PROPERTY VALUE
Device Name TNAS-fe52
HTTP Port 8181
HTTPS Port 5443
Interface eth1
IPv4 10.18.13.150
IPv6 fe80::6ebf:b5ff:fe02:fe52
MAC 6c:bf:b5:02:fe:52
MTU 1500
DNS 10.18.2.10
IPv4 Gateway 10.18.13.1
IPv6 Gateway -
Bond Enabled false
十三、远程访问(tnas.online)
注意:远程访问命令均为远程命令,需要认证。
父命令:tos tnas-online
| 子命令 | 说明 |
|---|---|
info | 查看远程访问状态 |
enable | 启用远程访问 |
disable | 禁用远程访问(高风险,可能中断远程连接,需 --yes) |
tos tnas-online info – 查看状态
tos tnas-online info [--detail] [--json]
--detail显示完整连接信息(账号、URL、IP、版本、VPN、运行时长)
输出示例:
PROPERTY VALUE
Status enabled
TNAS ID ABCD1234
Connected true
tos tnas-online enable – 启用远程访问
tos tnas-online enable --tnas-id <tnas-id> --account <email> [--password <pw>] [--password-stdin] [--yes]
| 参数 | 说明 |
|---|---|
--tnas-id | TNAS ID,必填 |
--account | 铁威马账号(邮箱格式),必填 |
--password | 账号密码(不推荐明文) |
--password-stdin | 从标准输入读取密码(推荐) |
--yes | 跳过交互确认 |
- 非交互模式必须提供
--tnas-id、--account和密码 - 已启用时返回退出码 4
- 输出:
tnas-online enabled
非交互示例:
echo 'password' | tos tnas-online enable --tnas-id MyNAS-01 --account user@example.com --password-stdin --yes
tos tnas-online disable – 禁用远程访问(高风险)
tos tnas-online disable [--yes]
- 交互模式显示确认提示,非交互模式必须传
--yes - 已禁用时幂等返回 0
- 输出:
tnas-online disabled
十四、系统日志
注意:日志管理命令均为远程命令,需要认证。
父命令:tos log
| 子命令 | 说明 |
|---|---|
view | 查看日志,可按事件类别、级别、行数过滤 |
clear | 清除日志(高风险,不可逆,需 --yes) |
export | 导出日志为 CSV 文件 |
tos log view – 查看日志
tos log view [event] [--level <level>] [--lines <n>] [--json]
事件类别:all / system / connect / file / samba / ftp / storage / transmit(默认:all)
日志级别:all / info / warn / error(默认:all)
显示行数:默认 20 行
输出示例:
TIME LEVEL MODULE USER MESSAGE
2026-04-23T10:00:00+08:00 INFO system - System started
tos log clear – 清除日志(高风险)
tos log clear [event] [--level <level>] [--yes]
- 高风险操作:不可逆删除日志记录
- 交互模式显示确认提示,非交互模式必须传
--yes - 输出:
Logs cleared: system
tos log export – 导出日志
tos log export [event] [--level <level>] [--output <path>]
- 导出指定类别和级别的日志为 CSV 文件
- 默认输出到当前目录,可用
--output指定路径 - 输出:文件路径和文件大小
十五、系统更新
注意:更新命令为远程命令,需要认证。
父命令:tos update
| 子命令 | 说明 |
|---|---|
check | 检查是否有可用更新 |
install | 下载并安装更新(高风险,需 --yes) |
tos update check – 检查更新
tos update check [--json]
- 查询是否有可用系统更新
有更新时输出:
Update available
Current Version 7.0.0447
Target Version 7.0.0559
Package Size 774.2 MB
无更新时输出:System is up to date
tos update install – 安装更新(高风险)
tos update install [--yes] [--force]
- 高风险操作:下载并安装系统更新,可能需要重启
- 完整流程:检查更新 → 下载升级包(显示进度)→ 安装升级(显示步骤)→ 提示重启
- 交互模式显示确认提示,非交互模式必须传
--yes --force强制安装,即使检查未通过- 安装过程中 SSH 可能断开连接
- 输出:进度信息 + 最终结果
十六、会话管理
tos login – 登录并缓存会话
tos login [-u <username>] [-P <password>] [--token-only]
- 不带参数:交互式登录(提示输入用户名和密码)
--token-only:仅输出 Token 字符串,不保存会话文件
# 交互式登录
tos login
# 非交互式登录
tos login -u admin -P yourpassword
# 生成 Token(适合 CI/CD)
tos login -u admin -P yourpassword --token-only
tos logout – 清除缓存的会话
tos logout
- 清除当前 TOS 守护进程的缓存会话
- 无会话时幂等返回 0
- 输出:
Logged out
交互模式与非交互模式
CLI 智能判断是否在终端环境运行:
交互模式(终端环境)
- 缺少参数时逐项提示输入
- 高风险操作显示
[y/N]确认提示 - 密码输入不回显
- 按
Ctrl+C取消操作(退出码 130) - 输入
n或直接回车取消(退出码 99)
非交互模式(脚本/CI/CD)
- 必须提供所有必填参数
- 高风险命令必须使用
--yes跳过确认 - 缺少参数或未加
--yes会直接报错(退出码 1)
JSON 输出格式
所有支持 --json 的命令输出规范的 JSON 数据,便于程序解析。
格式约定:
- 字段名使用
snake_case - 布尔值为
true/false - 时间使用 ISO 8601 格式(如
2026-04-23T09:12:00+08:00) - JSON 输出到
stdout,错误信息输出到stderr
示例:
tos fileservice status --json
[
{"service_name": "smb", "enabled": true, "status": "running", "port": "445"},
{"service_name": "nfs", "enabled": false, "status": "stopped", "port": "-"}
]
退出码说明
| 退出码 | 含义 | 典型场景 |
|---|---|---|
| 0 | 成功 | 命令正常完成 |
| 1 | 参数错误 | 缺少必填参数、校验失败、未加 --yes |
| 2 | 权限不足 | 认证失败或权限不够 |
| 3 | 资源不存在 | 用户/服务/磁盘等不存在 |
| 4 | 资源冲突 | 资源已存在或状态冲突 |
| 5 | 资源忙 | 任务进行中或设备忙 |
| 6 | 网络错误 | 无法连接到守护进程 |
| 7 | 超时 | 操作超时 |
| 8 | 部分成功 | 批量操作部分成功 |
| 9 | 内部错误 | 未知的内部错误 |
| 10 | 会话过期 | 缓存会话已过期,需重新登录 |
| 99 | 用户取消 | 交互确认时选择 No 或取消 |
| 130 | 中断信号 | 用户按 Ctrl+C 终止 |
使用场景示例
日常运维
# 登录 TNAS
ssh admin@192.168.1.100
# 查看系统状态
tos info
# 查看磁盘健康
tos disk list
# 查看在线用户
tos user online
脚本批量操作
# 批量创建用户(从 CSV 导入)
# userlist.csv 格式: username,password,group
while IFS=, read -r u p g; do
echo "$p" | tos user add "$u" --password-stdin --group "$g" --enabled true --yes
done < userlist.csv
# 定时检查磁盘健康并告警
tos disk list --json | jq '.[] | select(.health != "normal")'
CI/CD 场景
# 生成 Token
TOS_TOKEN=$(tos login -u admin -P $ADMIN_PASS --token-only)
export TOS_TOKEN
# 安装应用
tos app install DockerEngine --path /Volume1 --yes
常见问题
Q:CLI 需要额外安装吗?
不需要。CLI 已预装于 TOS 系统,通过 SSH 登录 TNAS 后直接使用 tos 命令即可。
Q:为什么有些命令需要认证,有些不需要?
本地命令(如 tos info、tos fileservice)直接读写系统文件或调用 systemd,无需认证;远程命令需要与 TOS 守护进程通信,因此需要认证。
Q:会话缓存文件安全吗?
会话文件(~/.tos/session.json)权限为 0600,且密码使用 RSA 公钥加密存储,不保存明文密码。
Q:如何使用 JSON 输出?
查询类命令添加 --json 标志即可,如 tos disk list --json。
Q:非交互模式下如何确认高风险操作?
所有高风险命令必须添加 --yes 参数,否则命令将报错退出。
更多帮助
每个命令都支持 --help 查看详细用法:
tos --help
tos user add --help
tos app install --help