我正在尝试编写一个脚本来自动化我的服务器审核头痛。我需要检查服务器上运行的Web服务器,然后查找其正常运行时间。但是,尽管我能够找到网络服务器,但我无法将其与我保存的变量进行比较。这就是我遇到问题的部分。这是在bash。
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"
注意:我将结果保存到/ tmp
中的临时文件中答案 0 :(得分:0)
你的语法错了。您需要elif
而不是else
。您还在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
如果您需要一些好的参考资料,这些是我最喜欢的两个: