编写登录服务器的shell脚本,登录后运行命令

编写登录服务器的shell脚本,登录后运行命令

我编写了一个用于登录服务器的 shell 脚本,并运行一些命令来启动和停止在其上运行的进程,所以我尝试了下面的代码,但它显示错误,请帮助我处理该脚本。

for i in 'cat /tmp/hb`     //server name would be saved in /tmp/hb
ssh $i
j=hostname 

If $i -ne $j
then
echo "server not logged in"

else echo "Server logged in"
if
$i == $j
sudo /opt/OV/bin/opcagt -status |grep -i ”message agent are not buffering" 

elif
sudo /opt/OV/bin/opcagt -stop
sudo /opt/OV/bin/opcagt -start
sudo /opt/OV/bin/opcagt -stop
sudo /opt/OV/bin/opcagt -status |grep -i ”message agent are not buffering

elif
sudo /opt/OV/bin/opcagt -kill
sudo /opt/OV/bin/opcagt -start
sudo /opt/OV/bin/opcagt -status |grep -i ”message agent are not buffering 

fi

上面的脚本给出错误:

./heart: syntax error at line 2: `ssh' unexpected

答案1

您的第一个问题是要由 a 循环的块for需要有一个doanddone块围绕它:

for f in `cat file`
do
  ...
done

第二个问题是循环体的其余部分(语句if不会在ssh目标主机上的会话内执行。您必须以某种方式将if语句推送到目标主机并在那里执行脚本。

相关内容