0

我正在编写一个 bash 脚本来更改所有 fortigate 的密码。我必须选择所有 IP 公用设备,并且我必须测试连接是好是坏。通过下面的命令,我知道我的 ssh 连接返回了一些错误,0=connection is good

sshpass -p [PASSWORD] ssh -q -oStrictHostKeyChecking=no [USERNAME]@[LOCAL_IP] > /dev/null

现在我想把它放在我的脚本中来测试所有的 ssh 连接并将它放在邮件中。但是当我将命令放在我的 while 循环中时,循环只运行一次(完全工作而无需测试 ssh 连接)

if [ "$?" == "0" ]
then
              echo "(./forti.sh) | sshpass -p $p ssh -oStrictHostKeyChecking=no $u@$IP" >> $base/change_password.sh           
                        ./change_password.sh
                        echo "<td id="rouge"></td>" >> pass_mail.html
                        rm $base/change_password.sh
else  
                        echo "<td id="rouge"></td>" >> pass_mail.html
                        rm $base/change_password.sh
fi

所以这是我的脚本块,它在fortigate启动时验证条件,正如我在while循环运行一次之前所说的那样,即使它是真的。

你知道我的问题吗?

如果不够清楚,请随时询问详细信息。

谢谢。

4

0 回答 0