CmdLinker
将为您提供简单、可操作的命令对象的调用方式,通过链式调用去使用各种命令,获取请求/响应,不在局限于将简单的命令字符串交给各种 ssh 工具包,修改执行命令时,不在需要进行各种繁琐的字符串的替换之类的操作或直接重新编写命令
cmdlinker
内置了两种模式,SSH/SHELL,用于生成不同场景下的命令对象
ls -l
,只需要指定 SHELL 模式即可安装 cmdlinker
pip3 install cmdlinker
验证安装是否成功
cmdlinker -v
出现版本信息,表示你得环境已经支持cmdlinker
相关命令
PS C:\Users\Dell> cmdlinker -v
____ _ _ _ _
/ ___|_ __ ___ __| | | (_)_ __ | | _____ _ __
| | | '_ ` _ \ / _` | | | | '_ \| |/ / _ \ '__|
| |___| | | | | | (_| | |___| | | | | < __/ |
\____|_| |_| |_|\__,_|_____|_|_| |_|_|\_\___|_|
The cmdlinker version is 0.1.1
repository:https://github.com/chineseluo/cmdlinker
authors:成都-阿木木<848257135@qq.com>
community(QQ群):816489363
简单例子:使用 linux 的 free -b -t 举例
第一步编写命令 yaml
entry: "free" # 主命令
mode: "SSH"
parameters:
- mapping_name: "b" # 映射命令
original_cmd: "-b" # 映射命令
value: False # 是否需要值
mutex: False # 是否互斥
default: None # 命令默认值
- mapping_name: "t" # 映射命令
original_cmd: "-t" # 原命令
value: False # 命令是否需要值
mutex: False # 命令之间是否互斥
default: None # 命令默认值
第二步,生成 yaml
cmdlinker
生成通过命令生成
cmdlinker init -f .\Ost.yaml
通过导入cmdlinker
生成
from cmdlinker.analyse import generator
generator("../example/free.yaml")
生成的 python 对象见 example 模块下的 free.py/Free.yaml 文件,会生成两个命令类,入口 entry 类为 Free,子命令类 B,子命令 T
cmdlinker
提供了两种设置命令的方式,运行于不同的场景
保持模式 HOLD
free = Free(host="192.168.1.5", name="root", pwd="123456", port="22")
free.hset_b().hset_t().runner()
HOLD 模式进行 hset 操作,会返回 Free 对象本身,可以继续操作 Free 下的子命令对象
传递模式 TRANSMIT
free = Free(host="192.168.1.5", name="root", pwd="123456", port="22")
free.tset_b().pre.tset_t().runner()
free = Free(host="192.168.1.5", name="root", pwd="123456", port="22")
free.tset_b().root.tset_t().runner()
TRANSMIT 模式进行 tset 操作,会进入子命令对象本身,Free().tset_t() 此时会返回 T 对象,可以通过 pre 定位到他的父级命令,或者通过 root 定位到根命令 Free 下进行操作
cmdlinker
提供了查询设置的命令参数的方法
free = Free(host="192.168.1.5", name="root", pwd="123456", port="22")
free.tset_b().pre.tset_t().runner()
# 查询
b = free.b() #返回B命令对象
b.value # 返回b对象的值
cmdlinker
提供了查询运行命令的方法
free = Free(host="192.168.1.5", name="root", pwd="123456", port="22")
free.tset_b().pre.tset_t().runner()
free.exec_cmd()
exec_cmd() 返回执行命令的字符串
cmdlinker
提供了查询运行命令对象的方法
free = Free(host="192.168.1.5", name="root", pwd="123456", port="22")
free.tset_b().pre.tset_t().runner()
free.collector()
collector() 返回一个命令对象列表
cmdlinker
提供了运行命令对象的方法
free = Free(host="192.168.1.5", name="root", pwd="123456", port="22")
free.tset_b().pre.tset_t().runner()
通过 runner() 可以执行命令对象的方法,必须从主命令开始,也就是 entry 命令实例化命令对象,传递子参数,然后调用 runner()