ansible 批量巡检内存

#!/bin/bash
#
#
#

# 巡检内存

rm -rf ./xj*.log

ansible $1 -m shell -a "free -m" > ./xj.log

split -l 4 xj.log -d -a 2 xj_

echo -e "\n" >> ./message.txt
echo `date` >> ./message.txt

for i in `ls ./xj_*`
  do
    #cat $i
    name=`cat $i |grep rc=0|awk '{print $1}'`
    free=`cat $i|grep Mem:|awk '{print $3}'`
    total=`cat xj_00|grep Mem:|awk '{print $2}'`
    userage=$(echo "scale=1; $free / $total * 100" | bc)
    echo "MEM:  $name memory usage percent ${userage}%" >> ./message.txt
  done

# 巡检网络

num=`ansible $1 -m ping|grep "|"|grep -v "SUCCESS" |wc -l`

if [ $num -gt 0 ];then
 for j in `ansible $1 -m ping|grep "|"|grep -v "SUCCESS" | awk '{print $1}'`
   do 
    echo "NET:  $j net is error" >> ./message.txt
   done
else
echo "NET:  all node net is SUCCESS" >> ./message.txt
fi

# 巡检磁盘

for node_name in `ansible $1 -m shell -a "hostname"|grep "|"|awk '{print $1}'`
 do

  # for循环 默认是按照空格分隔的,这里按照\n分隔
  IFS=$'\n\n'
  for line in  `ansible $node_name -m shell -a "df -PH"|grep -v "$node_name"|grep -v "Filesystem"|awk '{print $1,$5}'`
     do
       bfb=`echo $line|awk '{print $2}'`
       sz=`echo $bfb|awk -F "%" '{print $1}'`
       #echo $sz
       if [ $sz -gt 80 ];then
         echo "$node_name DISK:  $line is dangerous" >> ./message.txt
       fi
     done
 done

转载于:https://my.oschina.net/wangzilong/blog/3076256

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值