我正在尝试使用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 模板吗?你做了什么?alien
Debian 软件包?
更新 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
如果需要的话可以修改脚本