在 shell 脚本中使用 telnet

sha*_*nuo 10 shell

我使用 telnet 命令来检查 MySQL 端口是否正在响应。

telnet 10.10.10.24 3306
Run Code Online (Sandbox Code Playgroud)

我使用 ctrl 字符断开连接。这按预期工作。如何在 shell 脚本中使用此命令?

Cak*_*mox 12

如果您只是想检查端口是否打开,请尝试:

$ nc -zv 10.10.10.24 3306
Connection to localhost 3306 port [tcp/mysql] succeeded!
Run Code Online (Sandbox Code Playgroud)

nc如果端口打开,则返回 0,否则返回 1。这对于编写脚本也很有帮助。省略v开关以保持安静:

if ! nc -z 10.10.10.24 3306
then
    do_something
fi
Run Code Online (Sandbox Code Playgroud)


Jan*_*nen 9

nc对于非交互式使用要好得多。尝试类似的东西

echo -e "\n\n" | nc 10.10.10.24 3306
Run Code Online (Sandbox Code Playgroud)


Mic*_*jer 5

如果你没有 nc,你可以使用 bash 特殊文件重定向:

head -1 < /dev/tcp/10.10.10.24/3306 >/dev/null && echo MySQL is on || echo MySQL is off
Run Code Online (Sandbox Code Playgroud)