ssh并在远程服务器上运行ps失败

时间:2016-03-22 17:39:35

标签: linux shell ssh

我有一个shell脚本尝试ssh到远程服务器并获取远程服务器上进程的进程ID。当我单独运行命令时它可以工作但是从shell脚本只是吐出一个空行。 这是我的输入

ps -ef|grep MYJVM
user1 10796 10531 0 11:39 ? 00:00:00 /bin/bash /opt/bin/startDataEngine Host2 77633b8f-3401-0000-0080-918586aba15f MYJVM
user1 10798 10796 0 11:39 ? 00:00:18 DataEngine Host2 77633b8f-3401-0000-0080-918586aba15f MYJVM`

现在,当从远程主机Host1运行以下命令时,它可以正常工作。

/usr/bin/ssh -t -q root@host2.serv.com "ps -ef|grep -w MYJVM|grep -w '[D]ataEngine Host2\'|awk '{print \$10}'"` 

给了我

`7633b8f-3401-0000-0080-918586aba15f`

但是当我从shell脚本运行相同的命令时,我得到一个空白。

#!/bin/ksh
jvm=MYJVM
host=Host2
spid=$(ssh -t -q root@host2.serv.com "ps -ef|grep -w $jvm|grep -w '[D]ataEngine $host'|awk '{print $10}'")

echo $spid

我尝试对变量$jvm使用双引号,对第二个grep [D]ataEngine $host使用双引号但没有用。

0 个答案:

没有答案