shell脚本统计所有主机的cpu、内存、硬盘使用率
时间: 2023-08-10 07:07:20 浏览: 119
可以通过远程登录主机并执行命令来获取主机的CPU、内存、硬盘使用率。可以使用以下脚本来实现:
```bash
#!/bin/bash
# 定义主机列表
hosts=("host1" "host2" "host3")
for host in ${hosts[@]}
do
# 获取CPU使用率
cpu_usage=$(ssh $host "top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\([0-9.]*\)%* id.*/\1/'")
# 获取内存使用率
mem_total=$(ssh $host "free -m | awk 'NR==2{print \$2}'")
mem_used=$(ssh $host "free -m | awk 'NR==2{print \$3}'")
mem_usage=$(echo "scale=2;$mem_used/$mem_total*100" | bc)
# 获取硬盘使用率
disk_usage=$(ssh $host "df -h | awk '\$NF==\"/\"{printf \"%s\", \$5}'")
# 输出结果
echo "主机:$host"
echo "CPU使用率:$cpu_usage%"
echo "内存使用率:$mem_usage%"
echo "硬盘使用率:$disk_usage"
echo ""
done
```
该脚本首先定义了一个主机列表,然后通过循环迭代每个主机。在循环中,使用ssh命令远程登录到主机并执行命令来获取CPU、内存、硬盘的使用率。最后输出结果。注意,需要在本地机器上配置好ssh登录免密登录到远程主机的认证。
阅读全文