2011-09-21 60 views
0

所以這裏是我的bash腳本。試圖讓腳本檢查Apache狀態

APACHECHECK="$which telnet localhost 80" 

echo -e "\n Checking APACHE\n" 

$($APACHECHECK) 

#if [[ $($APACHECHECK) == *Connected* ]]; then 
# 
#  echo -e "Apache is running on port 80 :)" 
#    else 
#      echo -e "\n Apache is down!" 
#    fi 
# 

忽略評論。腳本運行telnet localhost 80。如果它返回「連接」,那麼它報告說Apache正在運行。

問題是腳本沒有完全運行。這裏是我的腳本輸出:

[email protected] [~]# ./megatool 

Checking APACHE 

telnet: connect to address ::1: Connection refused 

下面是我在運行Telnet本地主機80

[email protected] [~]# telnet localhost 80 
Trying ::1... 
telnet: connect to address ::1: Connection refused 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 

我也想抑制輸出,只是有我的腳本報告的Apache的回聲正在運行或它不是像我的話那樣陳述。

任何想法?

回答

2

爲什麼不使用apachectl?它配備了阿帕奇,讓你這樣做:

apachectl status 
2

爲了幫助使用telnet的解決方案:

if telnet localhost 80 </dev/null 2>&1 | grep -q Connected; then 
    echo "Connected" 
else 
    echo "no connection" 
fi