Linux服务器硬件监控脚本

#!/bin/bash

now=`date -u -d"+8 hour" +'%Y-%m-%d %H:%M:%S'`
servername=`hostname`
###get server ip
server_ip=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
###get server external ip

path=/usr/local/ktr/$(date +%Y-%m-%d)/

mkdir -p $path

#cpu阙值
cpu_warn='90'

#mem阙值
mem_warn='500'

#disk阙值
disk_warn='90'

#sever ip address
ip_address=`ifconfig eth1 |grep "inet"|awk '{print $2}'`
item_cpu () {
        cpu_use=`top -n 1|awk -F '[, %]+' 'NR==3 {print 100-$11}'`
        #cpu_use=`top -b -n 1 | grep Cpu | awk '{print $2}'|cut -f 1 -d "."`
        echo "$now curret cpu utilization is $cpu_use" 

        if [ $cpu_use -gt $cpu_warn ]
                then
                        Subject="服务器${server_ip}上cpu告警"
                        Content="服务器${server_ip}上cpu告警,当前cpu使用率为${cpu_use}%,请登录服务器进行检查"
                        echo "$Content" | mail -s "$Subject" 111@sss.com,222@ddd.com
            echo "服务器${server_ip}上cpu告警,当前cpu使用率为${cpu_use}%" >> $path'cpu_warn_'$(date +%Y-%m-%d-%H:%M:%S).txt
                else
                        echo "cpu ok."
        fi
}

#---mem
item_mem () {
        mem_free=`free -m | grep "Mem" | awk '{print $4+$6}'`
        echo "$now 内存空闲为 ${mem_free}MB" 

        if [ $mem_free -lt $mem_warn  ]
                then
                        Subject="服务器${server_ip}上内存告警"
                        Content="服务器${server_ip}上内存告警,当前空闲内存为${mem_free}MB,请登录服务器进行检查"
                        echo "$Content" | mail -s "$Subject" 111@sss.com,222@ddd.com
            echo "服务器${server_ip}上内存告警,当前空闲内存为${mem_free}MB" >> $path'mem_warn_'$(date +%Y-%m-%d-%H:%M:%S).txt
            
                else
                        echo "mem ok."
        fi
}

#---disk
item_disk () {
        `df -P | grep /dev | grep -v -E '(tmp|boot)' | awk '{print $1,$5}' | cut -f 1 -d "%" > $path/test.txt`

        while read line
        do
                disk_name=$(echo $line | awk '{print $1}')
                disk_used=$(echo $line | awk '{print $2}')
                query="'$now','$servername','$ip_address','$cpu_use','$mem_free','$disk_used','$disk_name'"
                echo $query

                #mysql -h**ip -u**用户名 -p密码 FK_LOG -e "INSERT INTO server_monitor(stat_date, server_name,ip_address, 
        #cpu_utilization, memory_utilization, disk_used,disk_name) VALUES($query);"

                if [ $disk_used -gt $disk_warn ]
                        then
                                Subject="服务器${server_ip}上存储告警"
                                Content="服务器${server_ip}上存储告警,当前率为${disk_used}%,请登录服务器进行检查"
                                echo "$Content" | mail -s "$Subject" 111@sss.com,222@ddd.com 
                echo "服务器${server_ip}上内存告警,当前内存空闲率为${disk_used}%" >> $path'disk_warn_'$(date +%Y-%m-%d-%H:%M:%S).txt
                        else
                                echo $disk_name" is ok."
                fi
        done < $path/test.txt
}

#---item_logfiles
item_logfiles () {
   time=$(date +%Y-%m-%d-%H:%M:%S)   
   filefolder=$path

   #--for filename in pdfhuixie.log,pdfjiexi.log,userinfo.log,sm.log,bao1.log,bao2.log,gk.log,user.log,zhxs.log,sent.log,yinqing.log,jghx.log,jiafang.log
   for filename in user.log pdfhuixie.log
   do
                        if [ ! -f $filefolder$filename ]                                     
                        then
                                        touch $filefolder$filename
                                        echo "touch successful" 
                        fi

            filesize=`ls -l $filefolder$filename | awk '{ print $5}'`           
            maxsize=$((1024*10))                                                                        
            if [ $filesize -gt $maxsize ]                                             
                    then
                  mv $filefolder$filename  $filefolder$filename.$time                
                                echo "backup file successful"
            fi

   done
}

item_cpu
item_mem
item_disk
item_logfiles

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值