2

作为启动脚本的一部分,我需要检查一个特定的 TCP 服务是否实际启动并运行。通过阅读配置文件,我知道目标主机和服务名称是什么。我打算使用nc向该服务发送示例请求,因为我知道如何使用它并且脚本很好,问题是nc无法将我的配置中的服务名称解析为端口号...

这让我想到了我的(两部分)问题:是否有 bash 内置或常用分布式实用程序(可能是部分或 RHEL 5 发行版)可以将服务名称解析为端口号?除了 netcat 之外,还有一个简单的实用程序可以在我的脚本中使用吗?

4

2 回答 2

7

getent是你想要的。

例如:getent services ftp

无论如何,您都需要解析输出,但您有端口。

于 2011-12-13T22:53:08.240 回答
1

您的系统中有/etc/services文件吗?可能每个可移植程序(包括ncgetent许多其他程序)都使用getservbyname(3)来解析给定服务名称的端口号。反过来,该函数从/etc/services文件中读取数据。

于 2011-12-14T00:11:41.423 回答