如何在 Perl 中监控远程 Linux 机器并检索已安装的软件?
我有几个 Perl 脚本,允许我通过 WMI 监视远程 Windows 机器。现在我可以检查 CPU 使用情况、内存使用情况、磁盘使用情况和已安装的软件。但是如果我想在远程 Linux 机器上做同样的工作怎么办?当然没有 WMI,所以我想我应该使用类似的东西。我读过另一个旧的 StackOverflow 问题,Linux 通过 < em>/proc 和 /sys 但我可以从远程计算机查询它们吗?我怎样才能在 Perl 中准确地做到这一点?有专用模块吗?
编辑:只是为了澄清,脚本必须是无代理的。
I have a couple of Perl scripts that allow me to monitor remote Windows machinses through WMI. Right now I can check CPU usage, Memory usage, Disk usage and Installed Software. But what if I want to do the same job on a remote Linux machine? Ofcourse there's no WMI so I guess I shall use something similar. I have read on another old StackOverflow question that Linux exposes informations through /proc and /sys but can I query them from a remote computer? And how can I do that exactly in Perl? Is there a dedicated module?
EDIT: Just to clarify, the script MUST be agent-free.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
检查这些:
http://www.net-snmp.org/docs/mibs/ host.html
http://www.oidview.com/mibs/0/RFC1213-MIB.html
这将为您提供内存/磁盘使用情况:
这将为您提供处理器利用率:
界面状态:
如果您使用基于 rpm 的 linux,这将为您提供已安装的软件:
您可以使其适用于 .deb 风格的 linux:
http://community.zenoss.org/blogs/zenossblog/2009/02/18/tip-of-the-month-snmp-software-inventory-for-debian-and-ubuntu-machines< /a>
在您查询的框中, public 是否具有对 .1.3.6.1.2.1.25 的读取访问权限?
您可能需要将类似的内容添加到 /etc/snmp/snmpd.conf 中
重新启动 snmpd
然后在上面的命令中指定
-c monitor
而不是-c public
Check these :
http://www.net-snmp.org/docs/mibs/host.html
http://www.oidview.com/mibs/0/RFC1213-MIB.html
This will give you memory / disk usage :
This will give you processor utilisation :
Interface Status :
If you use rpm-based linux, this will give you installed software :
You can make this work for .deb flavours of linux :
http://community.zenoss.org/blogs/zenossblog/2009/02/18/tip-of-the-month-snmp-software-inventory-for-debian-and-ubuntu-machines
On the box you are querying, does public have read access to .1.3.6.1.2.1.25 ?
You may need to add something like this to your /etc/snmp/snmpd.conf
The restart snmpd
Then specify
-c monitor
in the commands above instead of-c public
我不这么认为,也许您可以使用
Net::SSH
来访问这些文件,但我认为如果您安装 snmp 代理并使用Net::SNMP< 会更有意义/code> 就是为了这个目的。
监控已安装的软件可能会变得更加棘手,这取决于 Linux 发行版,并且通过 ssh 可能是最简单的。
编辑:忽略
snmp
部分,因为您希望无需代理。I don't think so, perhaps you can use
Net::SSH
to access these files, but I think it would make more sense if you install snmp agent and useNet::SNMP
for the purpose.Monitoring installed software may get trickier, will depend on the linux distribution and will probably be easiest over ssh.
EDIT: Ignore the
snmp
part, since you want to be agent-free.