直接运行jps命令正常,但是通过ssh远程登录后,执行shell脚本不能进行jps。
原因是有可能你的jps不在PATH中,即便配置java环境变量也不一定有用,我就是如此。
要注意bash在交互模式和非交互模式读取的配置文件是不同的,为了解决这种差异,应该尽可能在非交互式执行的脚本中写绝对路径
比如:/usr/local/software/jdk-11.0.14/bin/jps
#!/bin/bash
for host in hadoop2 hadoop3 hadoop4
do
echo "====================== $host ======================"
ssh $host "/usr/local/software/jdk-11.0.14/bin/jps"
done