Shell脚本监控CPU、内存和硬盘利用率

1、监控CPU利用率(通过vmstat工具)

#!/bin/bash#====================================================# Author: lizhenliang - EMail:[email protected]# Create Date: 2015-02-01# Description: cpu utilization monitor# blog:lizhenliang.blog.51cto.com#====================================================if [ `uname` != "Linux" ];then        echo "check os not linux."        exit 1fiwhich vmstat &>/dev/nullif [ $? -ne 0 ];then        echo "vmstat command no found, please install procps package."         exit 1fi##################################################cpu_us=`vmstat | awk ‘{print $13}‘ | sed -n ‘$p‘`cpu_sy=`vmstat | awk ‘{print $14}‘ | sed -n ‘$p‘`cpu_id=`vmstat | awk ‘{print $15}‘ | sed -n ‘$p‘`cpu_wa=`vmstat | awk ‘{print $16}‘ | sed -n ‘$p‘`cpu_sum=$(($cpu_us+$cpu_sy))cpu_info(){echo "CPU_Sum : $cpu_sum% ( CPU_Use:${cpu_us}% , CPU_System:${cpu_sy}% )" echo "CPU_Idle : ${cpu_id}%"echo "CPU_Wait : ${cpu_wa}"}#cpu_info;if [ $cpu_sum -ge 90 ];then        echo "CPU utilization $cpu_sum." | mail -s "CPU Monitor" [email protected]fi

2、监控内存利用率

#!/bin/bash#====================================================# Author: lizhenliang - EMail:[email protected]# Create Date: 2015-02-01# Description: memory utilization monitor# blog:lizhenliang.blog.51cto.com#====================================================which bc &>/dev/nullif [ $? -ne 0 ];then        echo "bc command no found, Please install bc package."         exit 1fiDate=`date +%F" "%H:%M`IP=`ifconfig eth0 | awk ‘/inet addr/ {print $2}‘ | cut -d: -f2`Total=`free -m | grep Mem | awk ‘{print $2}‘`Use=`free -m | awk ‘/buffers\// {print $NF}‘`Free=$(($Total-$Use))Total_conv=`echo "scale=2;$Total/1024" | bc | awk ‘{print $1"G"}‘`  #通过bc计算,保留小数点后两位(scale)if [ $Free -lt 200 ];then        Content=`echo -e "Date : $Date \nHost : $IP \nTotal : ${Total_conv} \nUse : ${Use}M \nFree : ${Free}M"`        echo "$Content" | mail -s "Memory Monitor" [email protected]fi

3、监控磁盘利用率

#!/bin/bash#====================================================# Author: lizhenliang - EMail:[email protected]# Create Date: 2015-02-01# Description: disk utilization monitor# blog:lizhenliang.blog.51cto.com#====================================================Date=`date +%F" "%H:%M`IP=`ifconfig eth0 | awk ‘/inet addr/ {print $2}‘ | cut -d: -f2`Total=`fdisk -l | grep "Disk /dev/sd[a-z]" |awk ‘{print $2$3"GB"}‘ |sed ‘s/:/=/‘`Disk_Use=`df -h |awk ‘{print $1"="$5}‘ | sed ‘1d‘ | sed ‘s/%//g‘`for i in $Disk_Usedo        A=`echo $i |awk -F‘=‘ ‘{print $2}‘`        if [ $A -gt 8 ];then                echo -e "Date : $Date \nHost : $IP \nTotal : $Total \nProblem : Part Use ${i}%" | mail -s "Disk Monitor" [email protected]        fidone
时间: 2024-10-10 18:06:02

Shell脚本监控CPU、内存和硬盘利用率的相关文章

Linux shell 脚本监控cpu,内存,硬盘,网络,是否存活

写脚本的背景:脚本实现简单的监控,而不需要用非常的重的监控软件完成. 脚本如下 #!/bin/sh # 脚本放入到/usr/local/bin # chmod 755 check_server.sh # crontab 中添加 source /etc/bashrc #------监控阈值 DISK_space_warn=90 CPU_load_warn=5 CPU_use_warn=50 MEM_use_warn=95 #SWAP_use_warn=50 Net_SYN_count_warn=2

【sehll学习】linux运维一个简单shell脚本监控系统内存

学习shell脚本入门后,慢慢要尝试编写一些脚本练练手,在这先简单的学习写个系统内存的监控. 1.首先先要确定一下截取一下需要关注的内存使用值,可使用free 命令来操作 free -m 显示 一般在监控内存是我们都是截取 第三行(-/+ buffers/cache)的值.确定后可以使用管道线和grep命令来获取这个的值. free -m | grep - | awk  '{print $4}' 获取到他的值为  858 当中 grep -  就是匹配一下要选取的内容,不太熟悉的可以学习一下gr

centos7.2,shell脚本监控CPU并sendmail自动报警

操作系统:centos 7.2 sendmail 自动报警#完成时间:2018.04.16 #!/bin/bash #CPU 1,5,15###########################################################if [ -e detection_script ]thenmkdir -p /detection_script/fi############################################################dt=

用shell脚本监控linux系统 自动发送邮件

此脚本可以做一个定时的检测,超出设定的值,即往邮箱发送警告 脚本用到bc,sendmail,163邮箱, yum install bc #!/bin/bash #System Monitoring Script while [ 1 ] do #本机需开启postfix或sendmail服务. #报警邮件地址设置 [email protected] [email protected] #设置脚本运行间隔时间.单位(秒). RUNTIME=900 #内存使用率监控设置,单位 (%) MEMTHRE=

使用shell脚本监控少量服务器并发送微信告警信息

01. 概括 1.0 脚本更新地址Git更新地址:shell_monitor_script.sh文章原文地址:使用shell脚本监控少量服务器并发送微信告警信息 1.1 前提:平台系统:linux系统下接收信息:微信企业号 1.2 脚本说明需要修改微信接口脚本对应参数的修改:包括IP,告警阈值等 1.3 脚本使用该脚本监控包括Disk.CPU.MEM.LOAD等主机资源,以及docker服务和docker容器.将该脚本附件假定放于:/home/mai/.check_host.sh.那么在定时任务

【转载】用shell脚本监控进程是否存在 不存在则启动的实例

用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]thenecho "start process....."elseecho "runing....."fi#####processString 表示进程特征字符串,能够查询到唯一进程的特征字符串0表示存在的$? -ne 0 不存在,$? -eq 0 存在 ---------

用shell脚本监控进程是否存在 不存在则启动的实例附带if判断详细条件

#!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]thenecho "start process....."elseecho "runing....."fi#####processString 表示进程特征字符串,能够查询到唯一进程的特征字符串0表示存在的$? -ne 0 不存在,$? -eq 0 存在 --------------------------------------------

Linux下shell脚本监控Tomcat的状态并实现自动启动

最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤. 1.编写Shell脚本monitor.sh #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作# author:EagleHao# date:2018-04-08# DEFINE # 获取tomcat进程ID(其中[grep

用shell脚本监控进程是否存在 不存在则启动的实例

用shell脚本监控进程是否存在 不存在则启动的实例: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]thenecho "start process....." nohup php yii test/action & elseecho "runing....."fi#####processString 表示进程特征字符串,能够查询到唯一进程的特征字符串0表示存在的$? -ne 0