我的任务是编写一个脚本,该脚本每隔几个小时在服务器上运行一次,以记录 CPU 使用率、内存和磁盘利用率。此脚本将在 Windows 和 Linux 机器上运行。我为这项任务选择了 Ruby。我是脚本编写新手。我在 Google 上搜索过但没有成功。能帮帮我吗?
答案1
首先,如果你正在使用 ruby 进行一些系统管理,你应该阅读系统管理实用 Ruby。
那么我认为你至少有两个选择:
- 该脚本将在每个系统上运行并调用 Web 服务
- 该脚本将在监控机器上运行,监控机器将轮询每台机器,然后调用 Web 服务
如果要使用第一个选项,则应创建一个数据收集类和一个数据发送类。前者应依赖于操作系统,但方法相同。在这种情况下,您可以使用它system
来启动系统命令并获取所需的数据。否则,您可以使用匆忙以获取更多先进数据。
对于第二个选项,你可以使用简单网络管理协议从中央位置。当然,这意味着在您的服务器上激活 SNMP(安全!!)。
再读一下,似乎 Rush 上有一些对 Windows 的支持。并且有一个 rushd 守护进程可用于远程访问机器并执行本地命令。
servers = %w(www1 www2 www3).map { |n| Rush::Box.new(n) }
servers.each do |s|
s.bash 'df -h'
end