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中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...
随机推荐
- Cenots更换YUM源的问题
[1] 首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/Cent ...
- Error:C:\Users\issuser\AndroidStudioProjects\SQLiteDemo1\.gradle\buildOutputCleanup\cache.properties (系统找不到指定的文件。)
android studio报下图中的这个错误的解决办法: 解决办法: 1.删除掉下图中标记的2个文件夹 2.将下图标记的文件的文件名重命名,把最后的后缀.lock去掉,因为加上了这个后缀,所以提示找 ...
- 记录CentOS环境下将Solr部署到Tomcat
首先切换到usr/local目录 cd /usr/local/ 下载tomcat到local目录 wget http://archive.apache.org/dist/tomcat/tomcat-7 ...
- echart
先介绍echart: 官网: http://echarts.baidu.com 看名字就知道是百度出品的. ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC ...
- Swagger文档转Word 文档
GitHub 地址:https://github.com/JMCuixy/SwaggerToWord/tree/developer 原创作品,转载请注明出处:http://www.cnblogs.co ...
- 读书笔记《PHP与MySQL程序设计》一
第1章 PHP概述 1.1 历史(PHP4.PHP5.PHP5.3.PHP6[未发布]) 1.2 一般语言特性(实用性.强大功能.可选择性.成本[开源]) 第2章 环境配置 2.1 安装的前提条件( ...
- [译]Dapper教程
脑子里突然浮现出一个想法:尝试翻译一些技术文档.说干就干,先来翻译个最近经常查阅的Dapper教程,有兴趣的园友可以一起参与进来 dapper-tutorial-cn. 什么是Dapper Dappe ...
- CTF---Web入门第十题 Once More
Once More分值:10 来源: iFurySt 难度:易 参与人数:4782人 Get Flag:2123人 答题人数:2166人 解题通过率:98% 啊拉?又是php审计.已经想吐了. hin ...
- 2-Sat+输出可行解(个人模版)
2-Sat+输出可行解: //LightOJ 1251 #include<stdio.h> #include<string.h> #include<vector> ...
- Vijos P1113 不高兴的津津【模拟】
不高兴的津津 描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会 ...