Bash Script для сравнения работоспособности веб-сервера при проверке сервера не работает

Я пытаюсь написать сценарий для автоматизации головной боли при проверке сервера. Мне нужно проверить, какой веб-сервер работает на сервере, а затем найти время его работы. Но несмотря на то, что я могу найти веб-сервер, я не могу сравнить его с переменной, в которой я его сохранил... Вот та часть, с которой у меня проблема. Это в Баш.

Webserver=`curl -Is $(hostname -i) | grep "Server" | awk {'print $2'} | cut -d'/' -f1`

if [ "$Webserver" == "Apache" ]

then
echo "Webserver Apache Uptime: $(/etc/init.d/httpd status | grep "Server uptime")" >> $TEMPFILE

else if [ "$Webserver" == "LiteSpeed" ]

then
echo "Webserver Litespeed: $(head -n4 /tmp/lshttpd/.rtreport | grep UPTIME)" >> $TEMPFILE

else
echo "Unidentified Webserver"

NB: у меня есть результаты, сохраненные во временном файле в /tmp

1 ответ

Ваш синтаксис неверен. Тебе нужно elif вместо else, Также ты mssing fi в конце вашего if заявление. Кроме того, для чего это стоит, вы должны обернуть $TEMPFILE в двойных кавычках для предотвращения разбиения слов для файлов, содержащих пробелы.

if [[ "$Webserver" == "Apache" ]]; then
  echo "Webserver Apache Uptime: $(/etc/init.d/httpd status | grep "Server uptime")" >> "$TEMPFILE"
elif [ "$Webserver" == "LiteSpeed" ]; then
  echo "Webserver Litespeed: $(head -n4 /tmp/lshttpd/.rtreport | grep UPTIME)" >> "$TEMPFILE"
  echo "Unidentified Webserver"
fi

Если вам нужны хорошие ссылки, это два из моих любимых:

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