使用 nc 或 ncat 进行 ldap 测试的退出代码

使用 nc 或 ncat 进行 ldap 测试的退出代码

我正在尝试编写 shell 脚本来测试服务器是否能够访问指定的 IP 和端口。

我正在使用的命令:ncat -w 5 <IP> 636 or 389 > /dev/null 2>&1 < /dev/null | echo $? 问题是当我检查上述两个端口的退出代码时我收到 1。

当我在没有 /dev/null 的情况下运行它时,我得到了一个连接到 ip 的 IP。
ncat -v -w 5 <IP> 636 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to <IP>:636. ^C

问题是,如果我使用没有 /dev/null 的第二个命令,我需要使用以下命令手动取消该命令:CTRL + C

关于如何使用 ncat 或 nc 测试 ip 和 ldap 端口,有什么建议吗?

答案1

尝试使用该-z标志。如果有的话。

-z      Specifies that nc should just scan for listening daemons, without
        sending any data to them.  It is an error to use this option in
        conjunction with the -l option.

尝试一下

ncat -z -w 5 <IP> 636

答案2

管道在这里毫无意义。请使用; echo $?not | echo $?

2. Shell Command Language
[...]
2.9.2 Pipelines
[...]
the exit status shall be the exit status of the last command specified in the pipeline

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_02

相关内容