bash解析服务名称

时间:2011-12-13 22:42:44

标签: linux bash netcat

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

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

2 个答案:

答案 0 :(得分:7)

getent就是你想要的。

例如:getent services ftp

你仍然需要解析输出,但你有端口。

答案 1 :(得分:1)

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