В то время как петля 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 выполняется один раз, даже если это правда.
Вы хоть представляете мою проблему?
Не стесняйтесь спрашивать подробности, если они недостаточно ясны.
Спасибо.