獲取全部主機的內存使用率,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
相關文章
相關標籤/搜索