2013-08-23 74 views
1

需要建議如何創建一個自動化腳本來檢查從Windows服務器環境中的多個服務器到一臺服務器(DB)的連接,使用telnet/portqry並且腳本也將創建一個.txt文件不成功的連接自動腳本telnet或portqry

在此先感謝您的幫助 克勞迪婭

+0

你可以使用tnsping嗎? – michael501

+0

perl的'Net :: Ping'怎麼樣? –

回答

0

你爲什麼不只是ping通嗎?

if ping -q -c 1 yourserver; then 
    echo 'server is online' 
else 
    echo 'server is offline' 
fi 

我認爲this問題是類似的。

這是慶典因爲使用了bash標籤

如果您需要檢查特定的端口,那麼你可以使用此代碼:

timeout 10 "telnet server port" 
if [[ $? == 124 ]]; then # timeout is going to exit with 124 code if it timeouts because of the telnet 
    echo 'server is online' 
else 
    echo 'server is offline' 
fi 
+0

不能使用ping,因爲需要連接到SQL Server端口 –

0

看看IPSentry。我們已經在混合的Windows/UNIX/Linux環境中使用了它多年,並發現它運行良好。

+0

我們希望避免在我們的服務器上安裝一些工具 –

0

由於您在評論中聲稱您確實試圖測試連接到Sql Server,爲什麼不使用.Net SqlConnection類?像這樣,

$server = "server\instance" 
$conStr = "Data Source=$server;Integrated Security=true;Initial Catalog=master;Connect Timeout=3;" 
$sqlConn = new-object ("Data.SqlClient.SqlConnection") $conStr 
try { 
    $sqlConn.Open() 
    if ($sqlConn.State -eq 'Open') { 
     $sqlConn.Close(); 
     write-host "$server is alive." 
    } else { 
     write-host "$server connection problem: $($sqlConn.State.ToString())" 
    } 
} catch { 
    write-host "$server is unavailable:" 
}