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
Если вам нужны хорошие ссылки, это два из моих любимых: