sheller
sheller一个用于执行本地和远程服务器命令的nodejs模块。可执行本地命令,可连接远程服务器执行远程机的命令,也可以 通过配置顺序执行一系列的命令(本地和远程),像一个shell脚本一样,但这里只需要命令一条条配置出来就行,而且可以依赖前面执行的命令结果,帮你完成一系列任务的自动化处理。
grunt插件 grunt-shelltask
下载安装
npm install sheller
文档
sheller.execLocal
执行本地命令的方法- 参数:
- command [String] 命令字符串
- cwd [String] 可选,当前路径
- callback [Function] 可选,回调函数,第一个参数为错误信息,第二个参数为命令结果
- 参数:
sheller.execSingleTask
执行单个命令任务- 参数:
- cfg [Object] 任务配置对象
- callback [Function] 回调函数,第一个参数为错误信息,第二个参数为命令任务结果数组
- cfg格式:
options:{}//参数配置,可选task: //命令配置,具体参考下方例子- 参数:
sheller.loadTasks
加载任务配置- 参数:config [Object/String] json对象或配置文件路径字符串 flag [Boolean] true/false 默认false merge/cover
- 配置文件格式:
moduleexports ="options"://......"task1":"options"://......"task"://......"task2"://......;sheller.execTask
执行已加载的任务- 参数:
- arr [Array] 需要执行的任务名数组,按指定数组顺序执行
- callback [Function] 回调函数,第一个参数为错误信息,第二个参数为命令任务结果数组
- 参数:
sheller.getssh
获得一个ssh远程的连接对象- 参数:
- name [String] 远程连接的名称(自定义),可为空
- cfg [Object] 远程机信息,包含地址、用户名及密码
- cfg格式:
"host" : ""//ip地址"username" : ""//用户名"password" : ""//密码"workPath" : ""//执行路径,可选- 连接对象有两个方法:
- exec: 执行命令,参数command、callback
- close: 关闭连接
- 参数:
sheller.clear
清除当前已加载的任务和配置。
Usage Examples
var sheller = ;//执行本地命令sheller;//执行单个命令任务sheller;//加载配置文件sheller;//执行任务sheller;
配置文件tasklist.js
moduleexports = "options": //本地命令执行路径 // "localWorkPath" : "E://workspace/", //远程机 "rs110" : "host" : "100.100.100.110" "username" : "test110" "password" : "123456" "workPath" : "/data1/nginx/htdocs/online" "rs112" : "host" : "100.100.100.112" "username" : "test112" "password" : "123456" "testParam": "test sheller" "task1": "options": // "localWorkPath" : "E://workspace/", name: "test options" "task": "command": "echo test" "id": "test1" "command": "echo test1" "command": "echo test2" { return data: data status: 1 ; } { console;//true console;//test1 console;//test console;//test2 console;//test options console;//echo test console;//test return "exit"; } command: "echo test end"//不会执行,因为上个命令exit退出了 remote: "rs110" "task2": "options": "task": "command": "cd" ;
License
MIT license