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


12

我正在尝试使用MemcachedPercona Apache Monitoring [Cacti]模板

他们确实警告您不能使用软件包的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的建议消除了[ed] netcat-openbsd_1.89-3ubuntu2_amd64.deb,尽管它提供了-C和-q选项,但它似乎不适用于该模板。我还按照Quanta的建议从nc_cmd中删除了-q1选项。仍然不会从命令行绘制图形或产生输出。

更新4:我按照dmourati的建议构建了源RPM,并按了Quanta的建议保留了-q1,但它仍然没有图形化或无法从命令行产生输出。也许源RPM解决方案和/或未通过-q1可以在RHEL 5.x上运行,我不知道。在这一点上我承认失败。

干杯


嗯 这是5.x的“ netcat传统” rpm:rpm.pbone.net/index.php3/stat/4/idpl/2392833/dir/redhat_5.x/com/… 您可以使用SRPM做一些事情,在RHEL / CentOS 6.x上构建它。
cjc 2012年

@cjc,请参阅我的Update 2,我希望该RPM出现相同的问题。
HTTP500 2012年

嗯,仔细观察我的Ubuntu 10.04机器上安装的nc,我发现同时具有“ -C”和“ -q1”的版本是openbsd,版本1.89-3ubuntu2。nc.traditional不会。尝试外星人netcat-openbsd?
cjc 2012年


4
这几乎就像模板制造商故意拖延一样。“安装此模板很容易!只需确保您的netcat同时具有-C和-q选项。<evil grin>”
Janne Pikkarainen 2012年

Answers:



-1

这是解决-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。


1
我的印象是“ -q1”与“ -w”超时不同。后者是建立连接的超时。至少根据文档,前者是关闭已建立连接的延迟。
cjc 2012年

-1

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

尝试外星人netcat-openbsd包,也许吗?

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


由于符合发布的标准而被授予赏金,但请注意,此解决方案不适用于更广泛的问题(例如,使用Percona Cacti Memcached模板),因此未授予最佳答案。
HTTP500 2012年

-1

您可以在模板中使用nc_cmd配置选项,如您对Google Code Cacti模板项目中的错误报告的最后评论上方的评论中所述,在该评论中已链接到该问题。

此外,您应该知道您正在使用过时的模板。如“更好的仙人掌模板”项目中所述,该项目已停产,现已成为Percona监控插件的一部分。请参阅http://www.percona.com/software/percona-monitoring-plugins/,请注意,Percona支持或咨询合同已完全涵盖了此软件,这是获得安装帮助的好方法。或者,在极少数情况下,如果存在真正的不兼容性,不会让您按原样安装模板,您将能够获取该软件的错误修复程序。


正在使用原始帖子中所述的Percona Monitoring Plugins模板。抱歉,我对此感到抱歉,对此线程添加了评论。我已经在../scripts/ss_get_by_ssh.php文件中编辑了nc_cmd配置选项。只是这一个模板使我感到悲伤,这一次可能不值得我提供支持/咨询合同,但是感谢您的建议。
HTTP500 2012年

哦,我的错,对不起您没有足够仔细地阅读。我得出一个结论。无论如何,nc_cmd应该是正确的解决方案,除非您正在使用的nc有一些东西使它无法正常工作。如果它可以正常工作,那应该是找到适合您的nc的正确选项。
Schwartz男爵2012年

-3

另外,您可以使用正确的选项编写自己的包装程序,而忽略其他所有程序。保存并在percona监视插件中使用。听起来如何?


包装程序将无法实现这些选项提供的功能。除非您建议他重写netcat本身。
chutz,2012年

-6
yum install nc
up2date install nc

并在需要时更改脚本


1
您在我说过Red Hat的版本使用nc的openbsd版本的地方读了笔记,对吗?
HTTP500 2012年

“您可以更改通过配置PHP脚本使用的选项”,并在需要时更改脚本
GioMac,2012年

RHEL版本中不存在的脚本使用的选项是-q1。您可以建议类似的选择吗?谢谢!
HTTP500 2012年

哦,也许我会找到我需要的netcat的源代码并创建RPM,或者直接编译并安装(make,make install)。
GioMac
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.