作为启动脚本的一部分,我需要检查特定的TCP服务是否实际启动并运行。通过读取配置文件,我知道目标主机和服务名称是什么。我打算使用 nc 向此服务发送示例请求,因为我知道如何使用它并且脚本编写得很好,问题是 nc 无法解析服务名称在我的配置中的端口号...
这让我想到了我的(两部分)问题: 是否存在可以将服务名称解析为端口号的bash内置或通用分布式实用程序(将是部分或RHEL 5发行版)? 除了netcat之外,还有一个简单的实用程序可以在我的脚本中使用吗?
答案 0 :(得分:7)
getent
就是你想要的。
例如:getent services ftp
你仍然需要解析输出,但你有端口。
答案 1 :(得分:1)
您的系统中是否有 / etc / services 文件?可能每个可移植程序(包括nc
,getent
和许多其他程序)都使用getservbyname(3)
来解析给定服务名称的端口号。反过来,该函数从/etc/services
文件中读取数据。