В то время как петля ssh-соединения

Я пишу сценарий bash для изменения всех паролей fortigate. Я должен выбрать все общедоступные IP-адреса и проверить, хорошее или плохое соединение. С помощью приведенной ниже команды я знаю, что мое ssh-соединение возвращает некоторые ошибки, 0 = соединение хорошее.

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

Теперь я хочу поместить это в свой сценарий, чтобы проверить все ssh-соединения fortigates и отправить его по почте. Но когда я помещаю команду в свой цикл 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

Итак, это мой блок сценария, который проверяет условие на случай, если фортигейт сработал, как я сказал ранее, цикл while выполняется один раз, даже если это правда.

Вы хоть представляете мою проблему?

Не стесняйтесь спрашивать подробности, если они недостаточно ясны.

Спасибо.

0 ответов

Другие вопросы по тегам