Ruby脚本从服务器获取一些统计信息

我的任务是编写一个脚本,每隔几个小时在服务器上运行脚本,以loggingCPU使用情况,内存和磁盘利用率。 这个脚本将在Windows和Linux机器上运行。 我select了ruby来完成这个任务。 我是新手脚本。 我GOOGLEsearch没有成功。 帮我?

首先,如果你正在用ruby进行系统pipe理 ,你应该阅读实用的ruby进行系统pipe理

那么我认为你至less有两个select:

  • 该脚本将在每个系统上运行并调用Web服务
  • 该脚本将运行在监视机器上,将轮询每台机器,然后调用Web服务

如果您要使用第一个选项,则应该创build一个数据收集类和一个数据发送类。 前者应该依赖于操作系统,但是采用相同的方法。 在这种情况下,您可以使用system来启动系统命令并获取所需的数据。 否则,你可以使用抢先获得更多的数据。

对于第二个选项,您可以从中央位置使用SNMP 。 当然,这意味着在服务器上激活SNMP(安全!!)。

再多看一点,看起来好像有一些支持Windows的急于求成。 而且还有一个可以用来远程访问机器执行本地命令的deamon。

 servers = %w(www1 www2 www3).map { |n| Rush::Box.new(n) } servers.each do |s| s.bash 'df -h' end 
  • 这个脚本在Windows和Linux上看起来完全不同,除非你能find一个专门的库。 据我所知,Ruby不能直接访问这些统计信息,所以你必须调用外部程序来完成。
  • 如果你有一个可以从整个networking写入的空间(例如NFS),它会让你的生活更轻松。
  • 如果你使用Nagios,那么NRPE和n2rrd是你的朋友。 如果不是的话,你可能还是要看看NRPE,因为它是为这种types的东西而devise的。 可以从Nagios网站获得NRPE,在此链接可以findn2rrd。
  • 如果你不使用Nagios,那么一个cron作业可能是让脚本定期运行的最佳select。