ansible 配合脚本检查节点CPU、内存、磁盘等信息

脚本信息:

#! /bin/bash

cpu_used=`vmstat | awk 'NR==3{print "CPU利用率:"(100-$(NF-2))"%"}'`

cpu_average=`uptime | awk '{print "CPU负载: " $(NF-2),$(NF-1),$NF}'`

mem_used=`free -h |awk 'NR==2{print "内存利用率: "int(100-($NF/$2*100))"%"}'`

disk_used=`df -hT |grep /$ | awk '{print "根目录利用率:"$(NF-1)}'`

echo $cpu_used

echo $cpu_average

echo $mem_used

echo $disk_used

yml文件信息:

- hosts: docker

tasks:

- name: 01-Push check.sh

copy: src=/server/scripts/check.sh dest=/server/scripts/ mode=750

- name: 02-Execute the script

shell: /server/scripts/check.sh

register: shell_result

- debug: var=shell_result.stdout_lines

脚本优化,按红绿色显示结果是否正常
#! /bin/bash 

# 定义一个红色显示的函数
function echo_red () {
    local what=$*
    echo -e "\e[1;31m${what}\e[0m"
}

# 定义一个绿色显示的函数
function echo_green () {
    local what=$*
    echo -e "\e[1;32m${what}\e[0m"
}

cpu_used=`vmstat | awk 'NR==3{print (100-$(NF-2))}'`
cpu_average=`uptime | awk '{print $(NF-2),$(NF-1),$NF}'`
mem_used=`free -h |awk 'NR==2{print int(100-($NF/$2*100))}'`
disk_used=`df -hT |grep /$ | awk '{print $(NF-1)*100/100}'`

echo "CPU利用率:$cpu_used%"
echo "CPU负载: $cpu_average"
echo "内存利用率: $mem_used%"
echo "根目录利用率:$disk_used%"

echo "==========检查结果=========="

if [ $cpu_used -ge 60 ]
then
   echo_red "cpu利用率过大于60%,请检查"

elif [ $mem_used -ge 80 ]
then
   echo_red "内存利用率过大于60%,请检查"

elif [ $disk_used -ge 60 ]
then
   echo_red "磁盘利用率过大于60%,请检查"

else
   echo_green "结果正常"
fi


版权声明:本文为weixin_44620146原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。