获取所有主机的内存使用率,CPU使用情况以及磁盘的使用情况shell,要求执行该脚本的主机需要与其他局域网免密码登录...

#!/bin/bash
#author=xiaosu
IP_LIST[0]="x.x.x.x"
IP_LIST[1]="x.x.x.x."
PORT="44272"
def_get_mem (){
        for IP in ${IP_LIST[@]};do
                MEMORY_PRE=$(ssh -p $PORT root@$IP "free -m"| sed -n '2p' | awk '{print $3/$2*100"%"}')
                HOST_NAME=$(ssh -p $PORT root@$IP "hostname")
                echo "主机名为${HOST_NAME},IP地址为${IP}的内存使用率为${MEMORY_PRE}" >> /tmp/get_all_mem$(date +%Y-%m-%d).log
        done
        echo "==========已获取内存使用情况=============="
}
def_get_cpu (){
        for IP in ${IP_LIST[@]};do
                USE_CPU=$(ssh -p $PORT root@$IP "cat /proc/loadavg "  | awk '{print $1,$2,$3}')
                HOST_NAME=$(ssh -p $PORT root@$IP "hostname")
                echo "主机名为${HOST_NAME},IP地址为${IP}的CPU使用情况为:1分钟、5分钟、15分钟的平均使用率分别为${USE_CPU[0]}${USE_CPU[1]}${USE_CPU[2]}" >> /tmp/get_all_mem$(date +%Y-%m-%d).log
        done
        echo "=========已获取CPU使用情况==============="
}
def_get_disk (){
        for IP in ${IP_LIST[@]};do
                USE_DISK=$(ssh -p $PORT root@$IP "df -h"  | awk 'NR!=1{print $5}'|awk -F \% '{print $1}')
                HOST_NAME=$(ssh -p $PORT root@$IP "hostname")
                A=0
                for disk1 in ${USE_DISK[@]};do
                        if [ $disk1 -gt "80" ];then
                        disk2[$A]=$disk1
                        A=$((++A))
                        fi
                done
                disk=${disk2[@]}
                if [ ! -n "$disk" ]; then
                        echo "主机名为${HOST_NAME},IP地址为${IP}磁盘使用率未有超过80%" >> /tmp/get_all_mem$(date +%Y-%m-%d).log
                else
                        echo "NOT NULL"
                        echo "主机名为${HOST_NAME},IP地址为${IP}磁盘使用率有超过80%的有:$disk" >> /tmp/get_all_mem$(date +%Y-%m-%d).log
fi
        done
        echo "===========已获取磁盘使用情况============="
}

def_get_mem
                echo "+++++++++++++++++++++++++">> /tmp/get_all_mem$(date +%Y-%m-%d).log
def_get_cpu
                echo "+++++++++++++++++++++++++">> /tmp/get_all_mem$(date +%Y-%m-%d).log
def_get_disk
                echo "+++++++++++++++++++++++++">> /tmp/get_all_mem$(date +%Y-%m-%d).log
cat /tmp/get_all_mem$(date +%Y-%m-%d).log

转载于:https://my.oschina.net/u/3781381/blog/2877328

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值