Linux 获取服务器运行状况的Bash脚本

Linux 获取服务器运行状况的Bash脚本,linux,bash,Linux,Bash,我希望监视服务器群的某些方面,这些方面是在服务器上运行的应用程序所必需的 基本上,我希望在每台机器上都有一个文件,当通过http(在vlan上)访问该文件时,使用curl,该文件将吐出我要查找的信息,我可以使用位于循环中的dameon登录数据库,并逐个检查所有服务器的运行状况 我想得到的信息是 <load>server load</load> <free>md0 free space in MB</free> <total>md0 to

我希望监视服务器群的某些方面,这些方面是在服务器上运行的应用程序所必需的

基本上,我希望在每台机器上都有一个文件,当通过http(在vlan上)访问该文件时,使用curl,该文件将吐出我要查找的信息,我可以使用位于循环中的dameon登录数据库,并逐个检查所有服务器的运行状况

我想得到的信息是

<load>server load</load>
<free>md0 free space in MB</free>
<total>md0 total space in MB</total>
<processes># of nginx processes</processes>
<time>timestamp</time>
服务器负载
md0可用空间(MB)
md0总空间(MB)
#nginx进程的定义
时间戳
最好的方法是什么


编辑:我们正在使用cacti和opennms,但是我在这里寻找的是在这些服务器上运行的应用程序所必需的数据。我不想让它依赖任何第三方软件来获取这些基本数据,而这些基本数据只需几个linux命令就可以获取,从而使它变得复杂

创建一个cron条目:

  • 每隔几分钟执行一次shell脚本(或任意频率)
  • 将输出保存在web服务器发布的目录中
假设你的文字是你想要的,这将使你达到90%的目的:

#/usr/bin/env bash
负载=$(正常运行时间切-d:-f5切-d,-f1)
免费=$(df-m/| tail-1 | awk'{print$4}')
总计=$(df-m/| tail-1 | awk'{print$2}')
进程=$(ps aux | grep[n]ginx | wc-l)
时间=$(日期)

cat你有没有看过或?…或munin或其他几十个软件包中的任何一个。或者有了或,我们已经使用了cacti和opennms,但是数据用于不同的事情。这严格适用于脚本使用的应用程序数据。这正是我现在所做的,但是我需要获取当前正在发生的事情的快照,而不是历史记录,即使它只有1分钟。@k1joy--如果您想要实时统计,请配置CGI脚本来调用bash脚本并捕获它的输出(并将web服务器配置为处理该类型的CGI)。
<load> 0.05</load>
<free>9988</free>
<total>13845</total>
<processes>6</processes>
<time>Wed Apr 18 22:14:35 CDT 2012</time>