巡检小shell🐡

巡检小shell🐡

无外网情况下,输出蓝色为正常,输出红色为告警

#!/bin/bash

#echo -e "\033[32m 输出蓝色为正常信息,输出红色为告警信息 \033[0m"
#echo -e "\033[33m 输出蓝色为正常信息,输出红色为告警信息 \033[0m"
#echo -e "\033[34m 输出蓝色为正常信息,输出红色为告警信息 \033[0m"
echo -e "\033[35m 提示:输出蓝色为正常信息,输出红色为告警信息 \033[0m"
#export LANG=en_US.UTF-8
#当前主机ip
HOST=$(ip a show eth0 | grep '\inet\b' | awk '{print $2}' | sed 's/\/.*//')

# 定义检查近七日异常新增文件目录
dir_add=/opt/tomcat7*
# 新增文件输出目录
file_add=/tmp/fileadd.txt


# 磁盘使用百分比阈值
DISK_USAGE_THRESHOLD=90
# CPU 使用百分比阈值
CPU_USAGE_THRESHOLD=50
# 内存使用百分比阈值
MEM_USAGE_THRESHOLD=80

# 获取当前时间
DATE=$(date +"%Y-%m-%d %H:%M:%S")

# 检查磁盘使用率
DISK_USAGE=$(df -h | awk '{if ($NF=="/") {print $5}}' | sed 's/%//g')
if [ $DISK_USAGE -ge $DISK_USAGE_THRESHOLD ]; then
    # 发送磁盘告警邮件
    echo  "============================磁盘告警==================================="
    echo  -e "\033[31m 当前主机ip为$HOST:   磁盘使用率高于 $DISK_USAGE_THRESHOLD%,请及时处理!\033[0m" 
    echo
else
    echo "=============================磁盘信息==================================="
    echo  -e "\033[36m `df -Th` \033[0m"
    echo
fi

# 检查 CPU 使用率
#CPU_USAGE=$(top -b -n 1 | grep -i "Cpu(s)" | awk '{printf "%d", $8}')
#CPU_USAGE=$(sudo mpstat 1 1 | awk '/Average:/ {print 100-$NF}')
CPU_USAGE=$(top -b -n 1 | grep -i "Cpu(s)" | awk '{print $2}')


if  (( $(echo $CPU_USAGE > $CPU_USAGE_THRESHOLD | bc -l) )); then
    # 发送 CPU 告警邮件
    echo  "=============================CPU告警==================================="
    echo -e "\033[31m 当前主机ip为$HOST:   CPU 使用率高于 $CPU_USAGE_THRESHOLD%,请及时处理!\033[0m" 
    echo
else
    echo  "=============================CPU信息==================================="
    echo -e "\033[36m `uptime` \033[0m"
    echo 
fi

# 检查内存使用率
MEM_TOTAL=$(free -m | awk '{if ($1=="Mem:") {print $2}}')
MEM_USED=$(free -m | awk '{if ($1=="Mem:") {print $3}}')
MEM_USAGE=$((100 * $MEM_USED / $MEM_TOTAL))


#发送告警邮件
if [ $MEM_USAGE -ge $MEM_USAGE_THRESHOLD ]; then
    # 发送内存告警邮件
    #echo "当前主机ip为$HOST:   内存使用率高于 $MEM_USAGE_THRESHOLD%,请及时处理!" | wall
    echo  "=============================内存告警============================="
    echo  -e "\033[31m 当前主机ip为$HOST:   内存使用率高于 $MEM_USAGE_THRESHOLD%,请及时处理!\033[0m" 
    echo 
else
    echo  "=============================内存信息============================="
    echo  -e "\033[36m `free -mh` \033[0m"
    echo
fi


# 检查近七日是否有新增异常文件
find  $dir_add  -type f -mtime -7 > $file_add
echo  "=============================新增文件信息==========================="
echo -e "\033[36m 近七天新增文件列表已发送到$file_add\033[0m"
echo

 

posted @ 2023-06-09 14:31  Noleaf  阅读(38)  评论(0编辑  收藏  举报