linux中编写在多台机器上同时执行一条命令的脚本

我们经常需要在集群中使用jps命令查看进程状态,而又懒得去每一台机器上分别执行jps命令,这时候就需要一个脚本文件来帮我们做这样的事情!

编写一个名为xcall的脚本文件吧!

#!/bin/bash
#在集群的所有机器上批量执行同一条命令
if(($#==0))
then
	echo 请输入您要操作的命令!
	exit
fi

echo 要执行的命令是$*

#循环执行此命令
for((i=101;i<=103;i++))
do
	echo ---------------------hadoop$i-----------------
	ssh hadoop$i $*
done

注意点:
$#表示输入的参数个数,如果没有输入命令则退出脚本。
由于输入的命令可能会携带参数,比如 ls -al,所以这里用到取变量的是$*,把输入的命令包括参数都当作整体的变量去执行。
最后别忘了把xcall文件放进家目录下的bin目录,如果没有就新建一个bin目录,因为这目录是在全局环境变量中,放进去后无论在哪个目录下都可以执行这个脚本文件

posted @ 2020-07-06 16:16  孙晨c  阅读(871)  评论(0编辑  收藏  举报