【问题标题】:automated scripting telnet or portqry自动脚本 telnet 或 portqry
【发布时间】:2013-08-27 02:18:17
【问题描述】:

需要有关如何使用 telnet/portqry 创建自动化脚本以检查 Windows 服务器环境中从多台服务器到一台服务器 (DB) 的连接性的建议,并且该脚本还将创建一个 .txt 文件以用于不成功的连接

提前感谢您的帮助 克劳迪娅

【问题讨论】:

  • 你可以使用 tnsping 吗?
  • perl 的Net::Ping 怎么样?

标签: perl powershell batch-file telnet portqry


【解决方案1】:

你为什么不直接ping它?

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

我认为this 的问题类似。

这是 bash 因为你使用了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

【讨论】:

  • no 不能使用 ping 因为需要连接到 SQL Server 端口
【解决方案2】:

看看 IPSentry。我们多年来一直在 Windows/UNIX/Linux 混合环境中使用它,发现它运行良好。

【讨论】:

  • 我们希望避免在我们的服务器上安装一些工具
【解决方案3】:

既然您在 cmets 中声称您确实在尝试测试与 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:"
}

【讨论】:

    猜你喜欢
    • 2010-12-02
    • 2014-05-25
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-04-30
    • 2012-06-25
    相关资源
    最近更新 更多