#!/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