gpt4 book ai didi

linux - 用于获取服务器运行状况的 Bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:06 24 4
gpt4 key购买 nike

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

基本上,我希望在每台机器上都有一个文件,当通过 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>

最好的方法是什么?

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

最佳答案

创建一个 cron 条目:

  • 每隔几分钟(或您想要的任何频率)执行一次 shell 脚本
  • 将输出保存在网络服务器发布的目录中

假设您的文字正是您想要的,这将使您完成 90% 的工作:

#!/usr/bin/env bash

LOAD=$(uptime | cut -d: -f5 | cut -d, -f1)
FREE=$(df -m / | tail -1 | awk '{ print $4 }')
TOTAL=$(df -m / | tail -1 | awk '{ print $2 }')
PROCESSES=$(ps aux | grep [n]ginx | wc -l)
TIME=$(date)

cat <<-EOF
<load>$LOAD</load>
<free>$FREE</free>
<total>$TOTAL</total>
<processes>$PROCESSES</processes>
<time>$TIME</time>
EOF

示例输出:

<load> 0.05</load>
<free>9988</free>
<total>13845</total>
<processes>6</processes>
<time>Wed Apr 18 22:14:35 CDT 2012</time>

关于linux - 用于获取服务器运行状况的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10219555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com