BSA Network Shell系列-runcmd/runscript命令
runcmd和runscript
## 1 功能概述
runcmd/runscript:runcmd在一台或多台机器执行Network Shell命令(单个命令),而runscript执行的是脚本,二者使用方法一样。runcmd -e 参数后是要执行的命令,而runscript -e后面是要执行的Network Shell脚本
只是使用的话,看看下面的使用示例段就够了
## 2 使用示例
1 对远程主机执行命令:查看指定机器/etc路径下文件数
runcmd -h vm1 vm2 -d /etc -e ls -l | wc -l
2 为每台机器的输出加上标题,并在每行输出前都加上(hostname)
cloudexpress# runcmd -h lzx-clone1 10.200.108.92 -H "%h 网管机" -V -e whoami lzx-clone1 网管机 (lzx-clone1) root (lzx-clone1) Exit Code 10.200.108.92 网管机 (10.200.108.92) root ( cloudexpress#
3 在机器上执行脚本,脚本可以位于任何一台机器上
a 脚本在某台远程机器上,这里是lzx-clone1
runscript -h lzx-clone1 10.200.108.101 -e //lzx-clone1/root/test/a.sh -脚本参数
b 脚本在执行命令的主机上
runscript -h lzx-clone1 10.200.108.101 -e /root/test/a.sh -脚本参数
4 并发执行,设置并发量为2
runcmd -h rome athens paris london -p 2 -e ifconfig
## 3 语法
runcmd [-v -n -p n] [-H header] [-NH] [-s | -c] [-d directory] [-f file] [-h host1 ... hostn] [-e command1 ...commandn]
runscript [-v -n -p n] [-H header] [-NH] [-s | -c] [-d directory] [-f file] [-h host1 ... hostn] [-e command1 ...commandn]
## 4 说明
runcmd和runscript允许在多台机器执行相同的命令。不同点是:runcmd执行的是Network Shell命令,runscript执行的是Network Shell脚本。
根据你正在执行的操作,你可能想知道你正在哪个主机处理。为此,为每个sub-command设置了NSH_RUNCMD_HOST变量,此外NSH_RUNCMD_DIR环境变量也会设置来提示当前Network Shell path。这两个变量可以通过下面的命令打印出来
cloudexpress# runcmd -h lzx-clone1 10.200.108.101 -e sh -c 'echo $NSH_RUNCMD_HOST $NSH_RUNCMD_DIR' ==> lzx-clone1 <== lzx-clone1 //lzx-clone1/ ==> 10.200.108.101 <== 10.200.108.101 //10.200.108.101/ cloudexpress#
## 5 命令参数
-c 在每台机器执行Network Shell命令,如果运行的是runcmd则会隐式的调用这个参数。
-d dirname 当在主机上执行命令时,可以通过该参数指定每台主机的起始目录,指定后如果运行pwd命令的话,则路径就是该参数指定的路径。当然如果不使用该参数,你可以在命令中进行指定。
-e cmd 使用该参数指定要执行的命令。这个参数必须是最后一个参数。所有在-e参数后的参数都会被认为是执行命令的一部分。
-f file
该参数把要执行命令的主机放在file中,格式是一行一条记录。一条记录可以是一个主机名,也可是是一个UNC name(包含网络路径和主机名的完整名称,如//athens/bin)。
-h host
该参数指定要执行命令的所有主机。主机之间使用空格分开。在-h参数后,所有随后的内容都被认为是主机名,除非runcmd/runscript遇到另外一个参数(以'-'开头的参数)。和-f指定主机名的参数一样,-h后面的主机名也可以是主机名或者是UNC name。
-H header
runcmd/runscript在输出结果中会有一个简单的标题。使你很容易区分不同主机的输出。默认的标题格式为"==> %h <==",其中的"%h"会被命令行中指定的主机信息替换。-H header 可以用来自定义标题,例如:-H "%h 网管机",则如下命令:
runcmd -h lzx-clone1 -H "%h 网管机" -d /root/test -e pwd #命令结果 lzx-clone1 网管机 //lzx-clone1/root/test
-n 该参数会使输出的标题不带回车(carriage return).
-NH 该参数会禁止所有标题的输出,即使你指定了-H header参数。
-p n
以并发方式执行命令,n是并发量。这可以显著提高运行速度,但由于是并发执行,所有输出顺序会被打乱,所以如果需要清晰的输出结果,那就不能使用并发。并发的原理是通过调用多个subshell的方式实现的
-v 把在每个主机实际执行的命令打印出来(如果是runscript的话会打印脚本名,但不是输出脚本内容)
-V 在每行输出前面都加上"(hostname)",Hostname就是你输入的主机名.
-s 在每台机器执行Network Shell脚本,隐式说明执行的是runscript命令。
-? 输出帮助
## 6 返回值
如果命令或脚本正常执行,则Exit Code是0,如果命令执行结果Exit Code不是0的话,则Exit Code就是0
## 7 作者
runcmd和runscript命令的作者是Thomas Kraus
BSA Network Shell系列-runcmd/runscript命令的更多相关文章
- BSA Network Shell系列-nexec | runcmd | runscript | scriptutil的异同
说明下nexec.runcmd.runscript.scriptutil的异同 相同点: 四者都可以在远程机器执行命令.或者调用脚本. 不同点: nexec支持NSH命令,可以执行远程机的本地命令(非 ...
- BSA Network Shell系列-nexec命令
# nexec ## 1 说明:nexec是远程命令接口引擎 ,用于在远程主机执行命令 nexec [-?] [-t term] [-o] [-i] [-l] [-nohup hostname &qu ...
- BSA Network Shell系列-nsh命令
nsh nsh命令软链接到zsh,直接运行nsh可进入Network Shell,所有的Network Shell命令都需要运行nsh进入Network Shell执行 1 使用cd命令访问远程主机和 ...
- BSA Network Shell系列-scriptutil命令
scriptutil ## 1 功能概述 scriptutil复制脚本到远程机的某个目录,然后在该目录执行脚本. 它的优点就是脚本是non-NSH的脚本.不支持NSH命令,执行起来的效果和runscr ...
- BSA Network Shell系列-redi命令
redi ## 1 功能概述 redi将输出重定向到一个文件中 ## 2 语法 redi [-?] [-a] filename ## 3 使用示例 1 将输出重定向到隐式路径所在主机的/tmp/hah ...
- BSA Network Shell系列-nlogin命令
nlogin 1 说明 nlogin 是一种通过RSCD Agent的通信的安全远程登录,使用和NSH工具相同的加密协议.可以作为telnet.rlogin或者ssh的替代工具(假如这些端口或协议禁用 ...
- BSA Network Shell系列-通过NSH执行Powershell,VBScript或bat files脚本
参考:Running Powershell, VBScript, or bat files via NSH 如果你直接在NSH命令行执行的话,可以参考我翻译的下面的东东,如果想运行NSH 脚本作业的话 ...
- Linux Shell系列教程之(八)Shell printf命令详解
本文是Linux Shell系列教程的第(八)篇,更多shell教程请看:Linux Shell系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell p ...
- Linux Shell系列教程之(十六) Shell输入输出重定向
本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...
随机推荐
- TCP协议详解(一)
Tcp协议作为传输层的重要协议之一,想必每个稍有网络编程知识的人都不会感觉到陌生,三次握手/四次挥手这些基本概念也都是耳熟能详.但是当你们进行具体的网络编程的时候发现有很多事情并没有想象中的那么简单, ...
- 模拟uClinux系统调用
这篇文章原来放在CU上的,现在挪过来了.CU上设置不可见了. 1. 目标 这里主要是实验一下uclinux的系统调用. 2. 环境 OS :vmware + red ...
- eclipse从git拉去出现红色方块的解决办法
1:由于错误已经解决,这里借了一副图,主要是显示这个红色方块,然后贴一下解决方法,日后好脑补: 大家一看肯定都是冲突了,我也是第一次遇到这种错误,贴一下(鼠标右击项目找到如下的Reset): 然后红色 ...
- 前端学习:html基础学习一
1.HTML的语法(主要内容HTML语法格式.文档注释.代码格式) HTML的特点 1.可以设置文本的格式,比如标题.字号.文本颜色.段落等等 2.可以创建列表(例如打开百度,我们可以看到这样的列表) ...
- Java集合系列[2]----LinkedList源码分析
上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点.本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于 ...
- if与while相互嵌套,菱形*的实现.py
""" * * * * * * * * * * * * * * * * * * * * ...
- virtio 简介
我的微信公众号 aCloudDeveloper 专注于云计算技术,互联网技术,生活感悟,打造干货分享平台,每周至少一更,欢迎小伙伴们多多关注! 什么是 virtio virtio 是一种 I/O 半虚 ...
- Java入门篇(二)——Java语言基础(下)
上篇说到Java中的变量与常量,接下来就是简单的计算了,首先需要了解一下Java中的运算符. 六.运算符 1. 赋值运算符 赋值运算符即"=",是一个二元运算符(即对两个操作数进行 ...
- hdu_1573 X问题(不互素的中国剩余定理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1573 X问题 Time Limit: 1000/1000 MS (Java/Others) Me ...
- 搬寝室(经典dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 hdu_1421:搬寝室 Time Limit: 2000/1000 MS (Java/Othe ...