Releases
2.1.0
Compare
Sorry, something went wrong.
No results found
melvek
released this
26 Sep 02:31
[2.1.0] - 2026-09-25
Breaking Changes
vault 密钥外置 :加密密钥不再硬编码在二进制中
默认交互输入
支持 --secret-key-file 指定密钥文件(普通文本或可执行脚本),默认位置 ~/.taskssh/vault-key
旧密文无法解密 ,需用 taskssh encrypt 重新加密
移除 push -B/--backup :不再支持覆盖前自动备份
需要备份时,在任务里增加 command 步骤执行备份命令
移除 fetch -F/--force 和 fetch -B/--backup :
强制密码加密 :清单文件中的 password 必须是 taskssh encrypt 生成的密文
Add
script 任务 :新增 script action,将本地 shell 脚本上传到远程主机并执行
CLI:taskssh script <host> -f <file> [-d <dest>] [-R] [-F]
清单:action: script,参数 file / dest / remove / force
默认上传到 /tmp,执行后可选删除,覆盖已存在文件可选
push 目录上传 :push 支持目录
不传 -z:递归逐文件上传,不依赖远程工具
传 -z:本地 zip 打包上传,远程 unzip 解包,依赖远程 unzip
fetch 目录下载 :fetch 支持目录
不传 -z:递归逐文件下载,不依赖远程工具
传 -z:远程 zip -r 打包,下载后本地 archive/zip 解压,依赖远程 zip
新增 -T/--tmp-dir:指定远程临时目录,默认 /tmp,仅 -z 时生效
连接复用 :每台主机连接一次,执行完整条任务后关闭,连接次数从「主机数 × step 数」降为「主机数」
--connect-timeout :新增连接超时配置,单位秒,默认 10
--secret-key-file / -V :指定密钥文件或可执行脚本
普通文本:内容即密钥
可执行文件:执行输出作为密钥
支持 ~ 展开
--dry-run :新增 dry-run 模式,连接远程但不执行命令和文件操作
输出每台主机每个 step 的解析后参数
跳过执行前确认,不输出执行摘要
CLI 变量注入 :新增 -D/--define 参数
格式:-D key=value,可重复
优先级最高,覆盖 global_vars / 组 vars / 主机 Extra
key 和 value 均做 trim
拒绝覆盖保留变量(date / execId)
用法示例:taskssh revert web_server -D revert_id=20260925_0K8X7A2B
主机查找增强 :支持按组名、组名/主机名、组内主机名查找
组名精确匹配:展开组内所有主机
组名/主机名 格式:精确到单台主机,如 web_server/web_1
组内主机名唯一匹配:如 web_1,自动定位到所属组
多组同名主机时报错,并提示使用 组名/主机名 格式
独立主机名或 IP 仍按原逻辑处理
Changed
输出 :单 step 任务不再输出 [STEP 1/1] 行
push :-f 的说明从「文件」改为「文件或目录」
encrypt :交互输入密钥两次(输入 + 确认)
decrypt :交互输入密钥一次
fetch :默认覆盖本地文件,不再需要 -F
script -R/--remove :短选项从 -R 改为 -r
Performance
SFTP 会话复用 :每个 Client 持有复用的 SFTP 会话,避免每次文件操作都创建新 channel
影响 push / fetch 目录场景,一次任务期间的 SFTP channel 创建次数从数百次降为 1 次
跨机房网络下收益更明显
Fix
修复变量加载顺序错误,导致全局参数意外覆盖了服务器参数的错误
修复FetchAvtion本地路径解析异常导致下载失败的问题
You can’t perform that action at this time.