CPU负载监控脚本代码_linux shell

复制代码 代码如下:

#!/bin/bash
load=`uptime`
shijian=`date +%Y-%m-%d-%T`
file=cpustatus.txt
touch $file
all=`cat $file |wc -l`
printf "$load $shijian\n" >> $file

if [[ $all > 60 ]] ; then
starttime=`cat $file |awk '{print $13}'|sort -r|tail -1`
stoptime=`cat $file |awk '{print $13}'|sort -n|tail -1`
loadavg=`cat $file |awk '{avg1+=$10;avg2+=$11;avg3+=$12}END{print avg1/NR,avg2/NR,avg3/NR}'`
high=`cat $file |awk '{print $10}'|sort -n|tail -1`
low=`cat $file |awk '{print $10}'|sort -r|tail -1`
printf "$starttime \n load average $loadavg \n high $high \n low $low \n $stoptime \n\n" > j
#printf "load average $startus \n" >>j
#mv $f $f.$b
fi

在配合 Crontab 使用更佳

下面是另外一个人写的,也分享下

复制代码 代码如下:

#!/bin/bash 
#提取本服务器的IP地址信息 
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` 
#提取本服务器CPU数量 
cpu_num=`grep -c 'model name' /proc/cpuinfo` 
count_uptime=`uptime |wc -w` 
#当前系统15分钟的平均负载值 
load_15=`uptime | awk '{print $'$count_uptime'}'` 
#获取当前系统单个核心15分钟的平均负载值,结果小于1.0时前面个位数补0 
average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc` 
#取上面平均负载值的个位整数 
average_int=`echo $average_load | cut -f 1 -d "."` 
#获取执行shell输入的警告值(0-100以内) 
warn_input=$1 
if [[ ! $warn_input =~ ^[0-100]+$ ]] 
then 
    exit 0 
else 
    if [[ "$warn_input" -lt 0 || "$warn_input" -gt 100 ]] 
    then 
        exit 0 
    else 
        load_warn=$(($warn_input/100)) 
    fi 
fi 
if [ $average_int -gt 0  ] 
then 
    echo "$IP服务器单个核心15分钟的平均负载为$average_load,超过警戒值1.0,请立即处理!!!$(date +'%Y-%m-%d %H:%M:%S')" 
else 
    load_now=`expr $average_load \> $load_warn` 
    if [ $load_now -eq 1 ] 
    then 
        echo "$IP服务器单个核心15分钟的平均负载为$average_load,超过警戒值0.7,请立即处理!!!$(date +'%Y-%m-%d %H:%M:%S')" 
    else 
        echo "$IP服务器单个核心15分钟的平均负载值为$average_load,cpu核心数为$cpu_num,系统15分钟的平均负载为$load_15 负载正常 $(date +'%Y-%m-%d %H:%M:%S')" 
    fi 
fi

时间: 2024-10-29 11:29:31

CPU负载监控脚本代码_linux shell的相关文章

几个常用的Linux操作系统监控脚本代码_linux shell

本文介绍了几个常用的Linux监控脚本,可以实现主机网卡流量.系统状况.主机磁盘空间.CPU和内存的使用情况等方面的自动监控与报警.根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 最近时不时有互联网的朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 下面是我常用的几个主机监控的脚本,大家可以根据自己的情况再进

五个常用的Linux监控脚本代码_linux shell

1.查看主机网卡流量 复制代码 代码如下: #!/bin/bash#network#Mike.Xuwhile : ; do      time='date +%m"-"%d" "%k":"%M'      day='date +%m"-"%d'      rx_before='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'      tx_befor

Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享_linux shell

监控硬件运行状况 shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员. 原理: 1.获取cpu,memory,load average的数值 2.判断数值是否超过自定义的范围,例如(CPU>90%,Memory<10%,load average>2) 3.如数值超过范围,发送电邮通知管理员.发送有时间间隔,每小时只会发送一次. 4.将数值写入log. 5.设置crontab 每30秒运行一次. ServerMonitor.sh #

判断文件是否存在的shell脚本代码_linux shell

实现代码一. #!/bin/sh # 判断文件是否存在 # link:www.jb51.net # date:2013/2/28 myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi # 这里的-d

批量转换目录下文件编码的shell脚本代码_linux shell

一例批量转换目录下文件编码的shell脚本代码. 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8. 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不一致需要修改. 例子: 复制代码 代码如下: #!/bin/bash# File Name: iconv.sh# Author: wanggy# site: www.jb51.net#show_file(){    for file in `ls $1`   

linux中mysql备份shell脚本代码_linux shell

第一步:在你的linux服务器中定义备份目录: 复制代码 代码如下: mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup 第二步:下面是最重要的一步了,就是写定时备份脚本. 复制代码 代码如下: vi dbbackup.sh 代码文件如下 复制代码 代码如下: #!/bin/sh# mysql data backup script## use mysqldump --help,get more detail.#BakDir=/root/back/

统计 cpu 内存 使用率的shell脚本代码_linux shell

复制代码 代码如下: #!/bin/shclearwhile ((1>0))do NET=$(netstat -anp | grep 1000 | grep EST | wc -l) PRC=$(ps aux | grep thread1 | grep -v grep | grep -v SCREEN | awk '{ print " CPU: " $3 "%,  MEM: " $4 "%, RSS: " $6/1024 "M,

提取oralce当天的alert log的shell脚本代码_linux shell

提取oralce当天的alert log的shell脚本 复制代码 代码如下: #/bin/sh#get alert of everyday#then name of file is everyday_alert.shdir="/oracle/admin/bbdz/bdump"num=$(cat -n ${dir}/alert_bbdz.log | grep "`date|cut -c 1-10`"|head -n 1 |awk '{print $1}') tail

备份网站内容的shell脚本代码_linux shell

备份网站内容 复制代码 代码如下: #!/bin/bash#指定运行的脚本shell#运行脚本要给用户执行权限bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`date +%k`min=`date +%M`dirname=$year-$month-$day-$hour-$minmkdir $bakdir/$dirnamemkdir $bakdir/$dirname/confmkdir $bakdir/$dirname