linux同步执行命令脚本 (xcall)
linux同步执行命令脚本 (xcall)
1、在/usr/local/bin目录下 创建xcall文件
vim /usr/local/bin/xcall
2、输入内容
#!/bin/bash
# 获取控制台指令 判断指令是否为空
pcount=$#
if((pcount==0));
then
echo "command can not be null !"
exit
fi
for host in bigdata01 bigdata02 bigdata03
do
echo ================ $host=================
ssh $host "source /etc/profile; $@"
done
echo ===========================================
3、修改权限
chmod 777 xcall
4、使用示例
[hadoop@bigdata01 ~]$ xcall jps
================ bigdata01=================
12131 Jps
10885 TaskManagerRunner
10251 StandaloneSessionClusterEntrypoint
================ bigdata02=================
6084 Jps
5882 TaskManagerRunner
================ bigdata03=================
4161 TaskManagerRunner
4287 Jps
===========================================
5、备注
当通过 SSH 直接执行命令时,不会加载用户的 ~/.bashrc 或 ~/.profile 文件,这可能导致环境变量不生效。所以脚本中ssh之后显示执行了 source /etc/profile