Bash脚本用于比较服务器审核中的Web服务器正常运行时间

时间:2014-01-22 04:41:02

标签: bash webserver audit

我正在尝试编写一个脚本来自动化我的服务器审核头痛。我需要检查服务器上运行的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

中的临时文件中

1 个答案:

答案 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

如果您需要一些好的参考资料,这些是我最喜欢的两个: