Netcat(nc)适用于 RHEL 6.x 的传统软件包?

Netcat(nc)适用于 RHEL 6.x 的传统软件包?

我正在尝试使用Percona Apache 监控 [Cacti] Memcached 模板

他们确实警告您不能使用 openbsd 版本的软件包,并为 Ubuntu/Debian 用户提供了解决方案,即:

您需要服务器上的 nc。某些版本的 nc 接受不同的命令行选项。您可以通过配置 PHP 脚本来更改使用的选项。如果您出于某种原因不想这样做,那么您可以安装符合脚本默认配置中编码的期望的 nc 版本。在 Debian/Ubuntu 上,netcat-openbsd 不起作用,因此您需要 netcat-traditional 包,并且您需要切换到 /bin/nc.traditional...

由于 RHEL 6.x 版本确实来自 openbsd(已确认rpm -qi nc),如何在 RHEL/CentOS 上安装它?

还有人在 RHEL/CentOS 上运行这些 Percona 模板吗?你做了什么?alienDebian 软件包?

更新 1:FWIW,我尝试通过从源代码编译来使用 GNU netcat,但它似乎也没有 Cacti 模板所需的确切选项(即似乎没有 -C 或 -q1 的类比)

更新 2:我把 netcat-traditional_1.10-38_amd64.deb 包拆成 .tgz 包,结果生成了一个二进制文件“nc.traditional”,这个版本有 -q 选项,但没有 -C

更新 3:我按照 cjc 的建议修改了 netcat-openbsd_1.89-3ubuntu2_amd64.deb,虽然它提供了 -C 和 -q 选项,但似乎无法与模板配合使用。我还按照 quanta 的建议从 nc_cmd 中删除了 -q1 选项。仍然无法从命令行绘制图表或生成输出。

更新 4:我按照 dmourati 的建议构建了源 RPM,并按照 quanta 的建议省略了 -q1,但它仍然没有绘制图表或从命令行产生输出。也许源 RPM 解决方案和/或不传递 -q1 适用于 RHEL 5.x,我不知道。在这一点上,我承认失败了。

干杯

答案1

请安装名为 nmap-ncat 的包并检查它。

答案2

这是一个部分(相反)的解决方案,它解决了 -C 问题,但没有解决 -q 问题。

我从这里开始:

http://www.reidea.hu/netcatcrlf/

这至少解释了 -C 选项的作用,提供 CRLF。

该页面将我引导至一个古老的 Bugzilla:

https://bugzilla.redhat.com/show_bug.cgi?id=203931

您可以在那里找到针对 -C 问题修补的 SRPM。

https://bugzilla.redhat.com/attachment.cgi?id=134827

下载该 SRPM,重建它(在我的 CentOS 6 RPM 构建环境中运行良好),然后就可以安装生成的 nc。查看手册页,瞧,支持 -C。

-C 发送 CRLF 作为行结束符

为了我自己的启发,-q1 选项有什么作用?

编辑:啊,我明白了 -q1 是在 1 秒后退出。对于上面的 netcat,选项是“-w”表示超时。您可以对 percona 脚本进行简单的更改,让您的图表正常工作。根据需要传递 EOF。

答案3

在我的 Ubuntu 10.04 机器上,我看到同时具有“-C”和“-q1”的版本是 openbsd 版本,版本 1.89-3ubuntu2。nc.traditional 版本实际上没有。

尝试一下外来的 netcat-openbsd 包,也许可以?

有趣的是,互联网上各种 netcat 来源都没有 Ubuntu 版本提供的完整功能集。我还没有查看 Ubuntu 软件包清单来了解它们做了什么。

答案4

yum install nc
up2date install nc

如果需要的话可以修改脚本

相关内容