修改.bashrc使得xcall能够执行jps命令
xcall脚本
通过编写的xcall脚本, 能够在一台主机上执行其它主机上的命名令.具体脚本编写如下:
#!/bin/bash
# 验证参数
if(($#==0))
then
echo 请输入要执行的命令!
exit
fi
echo "要执行的命令是:$@"
# User specific aliases and functions
source /etc/profile
# 批量执行
for((i=2;i<=3;i++))
do
echo ------------------node0$i------------------
ssh node0$i $@
done
解决无法执行xcall jps
的第二种方案
当通过以上脚本执行xcall jps
时, 却出现无法找到jps
的情况. 有种方式是在usr/local/bin
下创建jps
的软连接. 但明明已经在/etc/profile
中将jps
命令所在目录添加到了PATH
为什么会出现未找到命令的情况. 这就需要知道一点, xcall脚本本质上是通过ssh来执行命令的, 而ssh分为两类: "Login Shell"与"Non-Login shell"两类, 而"Nod-Login shell"引入了~/.bashrc
, 但是没有引入/etc/profile
. 所以需要在目的主机的相应家目录下编辑文件~/.bashrc
, 在该文件中追加以下语句即可:
source /etc/profile
参考:
https://www.cnblogs.com/qixing/p/11430867.html
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步