#!/bin/bash#获取主机信息function sys_info(){    #主机名    HOST=`hostname`    #以后零碎工夫    DATE=`date "+%Y/%m/%d-%H:%M:%S"`    #零碎IP     #零碎本地IP     IP_ON=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`     #零碎外网IP     IP_IN=`curl whatismyip.akamai.com`    #内存信息     #物理内存        #内存总量        MEM_TOTAL=`free -m | grep Mem | awk '{print $2}'`        #已应用内存        MEM_USED=`free -m | grep Mem | awk '{print $3}'`        #残余内存        MEN_FREE=`free -m | grep Mem | awk '{print $4}'`        MEN_BUFF_CACHE=`free -m | grep Mem | awk '{print $6}'`        MEN_REALFREE=$[$MEN_FREE+$MEN_BUFF_CACHE]     #Swap内存        #Swap总量        Swap_TOTAL=`free -m | grep Swap | awk '{print $2}'`        #已应用内存        Swap_USED=`free -m | grep Swap | awk '{print $3}'`        #残余内存        Swap_FREE=`free -m | grep Swap | awk '{print $4}'`    #磁盘信息     #硬盘挂载设施(/dev/vda1)        DISK_MOUNTING=`df -Ph |grep /dev/vda1|awk '{print $1}'`     #硬盘总容量        DISK_TOTAL=`df -Ph |grep /dev/vda1|awk '{print $2}'`     #硬盘已应用        DISK_USED=`df -Ph |grep /dev/vda1|awk '{print $3}'`     #硬盘残余空间        DISK_FREE=`df -Ph |grep /dev/vda1|awk '{print $4}'`     #硬盘使用率        DISK_PERCENTAGE=`df -Ph |grep /dev/vda1|awk '{print $5}'`     #硬盘挂载目录        DISK_HOME=`df -Ph |grep /dev/vda1|awk '{print $6}'`    #CPU信息    #脚本性能形容:根据/proc/stat文件获取并计算CPU使用率    #CPU工夫计算公式:CPU_TIME=user+system+nice+idle+iowait+irq+softirq    #CPU使用率计算公式:cpu_usage=(idle2-idle1)/(cpu2-cpu1)*100    #默认工夫距离        TIME_INTERVAL=5        time=$(date "+%Y-%m-%d %H:%M:%S")        LAST_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')        LAST_SYS_IDLE=$(echo $LAST_CPU_INFO | awk '{print $4}')        LAST_TOTAL_CPU_T=$(echo $LAST_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')        sleep ${TIME_INTERVAL}        NEXT_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')        NEXT_SYS_IDLE=$(echo $NEXT_CPU_INFO | awk '{print $4}')        NEXT_TOTAL_CPU_T=$(echo $NEXT_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')    #零碎闲暇工夫        SYSTEM_IDLE=`echo ${NEXT_SYS_IDLE} ${LAST_SYS_IDLE} | awk '{print $1-$2}'`    #CPU总工夫        TOTAL_TIME=`echo ${NEXT_TOTAL_CPU_T} ${LAST_TOTAL_CPU_T} | awk '{print $1-$2}'`    #CPU使用率        CPU_USAGE=`echo ${SYSTEM_IDLE} ${TOTAL_TIME} | awk '{printf "%.2f", 100-$1/$2*100}'`}#邮件告警function sys_mail(){    #发送告警    #定义变量    sys_msg="----------------零碎巡逻----------------"    sys_hostname="\n\t主机名\t=\t${HOST}"    #sys_info="\n 零碎信息 \t=\t${SYS}"    sys_time="\n\t零碎工夫 \t=\t${DATE}"    sys_ip="\n\t本地IP:\t${IP_ON}\t\n\t外网IP:${IP_IN}"    sys_msg2="\n----------------CPU信息----------------"    sys_cpu="\n\tCPU使用率\t=\t${CPU_USAGE}%"    sys_mem="\n----------------内存信息----------------\n物理内存总量:${MEM_TOTAL}MB\n\t    已用:${MEM_USED}MB\n\t    残余:${MEN_REALFREE}MB\n\tSwap内存总量:${Swap_TOTAL}MB\n\t    已用:${Swap_USED}MB\n\t    残余:${Swap_FREE}MB"    sys_disk="\n----------------硬盘信息----------------\n硬盘挂载:${DISK_MOUNTING}\n\t总容量:${DISK_TOTAL}\n\t已用:${DISK_USED}\n\t残余:${DISK_FREE}\n\t利用率:${DISK_PERCENTAGE}\n\t挂载目录:${DISK_HOME}"    sys_hang="\n-------------------end--------------------"    #拼接变量    echo -e "$sys_msg $sys_hostname $sys_time $sys_ip $sys_msg2 $sys_cpu $sys_mem $sys_disk $sys_hang" | mail -s "零碎巡检" xxxxxxx@qq.com}#微信告警function sys_wechat(){    # 微信接口    CropID='xxxxxxx'    Secret='xxxxxxx'    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"    Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"    To_User="xxxxxxx"    To_Party="1"    Agent_ID="1000002"    /usr/bin/curl --data-ascii '{     "touser":  "'${To_User}'",     "toparty": "'${To_Party}'",    "msgtype": "text",    "agentid": "'${Agent_ID}'",    "text": {    "content": "'---------------日常巡检---------------''获取工夫:${DATE}''主机名称:${HOST}''近程地址:${IP_IN}''内网地址:${IP_ON}''---------------内存状况---------------''物理内存容量:${MEM_TOTAL}MB''已用:${MEM_USED}MB''残余:${MEN_REALFREE}MB''Swap内存容量:${Swap_TOTAL}MB''已用:${Swap_USED}MB''残余:${Swap_FREE}MB''---------------硬盘信息---------------''硬盘挂载:${DISK_MOUNTING}''总容量:${DISK_TOTAL}''已用:${DISK_USED}''残余:${DISK_FREE}''利用率:${DISK_PERCENTAGE}''挂载目录:${DISK_HOME}''---------------CPU信息---------------''CPU利用率:${CPU_USAGE} %''-----------------END------------------'"},"safe":"0"}' $PURL}sys_infosys_mailsys_wechat