我们经常需要在集群中使用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目录,因为这目录是在全局环境变量
中,放进去后无论在哪个目录下都可以执行这个脚本文件