首页 > 系统服务 > 详细

linux通过内存的占用比shell 记录日志

时间:2015-10-22 14:31:17      阅读:300      评论:0      收藏:0      [点我收藏+]
#服务监控脚本
#!/bin/bash
#monitor available disk space
#查看内存占用的百分比  free -m | sed -n ‘2p‘ | awk ‘{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}‘

#系统分配的区总量  
mem_total=`free -m | grep Mem | awk ‘{print  $2}‘`  
 
#当前剩余的free大小  
mem_free=`free -m | grep Mem | awk ‘{print  $4}‘`  
 
#当前已使用的used大小  
mem_used=`free -m | grep Mem | awk ‘{print  $3}‘`  
 
 
if (($mem_used != 0)); then  
 
#如果已被使用,则计算当前剩余free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0  
 mem_per=0`echo "scale=2;$mem_free/$mem_total" | bc`  
 DATA="$(date -d "today" +"%Y-%m-%d-%H-%M") free percent is : $mem_per"

#设置的告警值为20%(即使用超过80%的时候告警)。  
   mem_warn=0.20  
 
#当前剩余百分比与告警值进行比较(当大于告警值(即剩余20%以上)时会返回1,小于(即剩余不足20%)时会返回0 )  
   mem_now=`expr $mem_per \> $mem_warn`  
 
#如果当前使用超过80%(即剩余小于20%,上面的返回值等于0),释放内存
  if (($mem_now == 0)); then  

        DAT="`date +%Y%m%d`"
		HOUR="`date +%H`"
		DIR="/home/weblog/host_${DAT}/${HOUR}"
		DELAY=60
		COUNT=60
		# whether the responsible directory exist
		if ! test -d ${DIR}
		then
		    /bin/mkdir -p ${DIR}
		fi
		# general check
		export TERM=linux
		/usr/bin/top -b -d ${DELAY} -n ${COUNT} > ${DIR}/top_${DAT}.log 2>&1 &
		# cpu check
		#/usr/bin/sar -u ${DELAY} ${COUNT} > ${DIR}/cpu_${DAT}.log 2>&1 &
		#/usr/bin/mpstat -P 0 ${DELAY} ${COUNT} > ${DIR}/cpu_0_${DAT}.log 2>&1 &
		#/usr/bin/mpstat -P 1 ${DELAY} ${COUNT} > ${DIR}/cpu_1_${DAT}.log 2>&1 &
		# memory check
		/usr/bin/vmstat ${DELAY} ${COUNT} > ${DIR}/vmstat_${DAT}.log 2>&1 &
		# I/O check
		#/usr/bin/iostat ${DELAY} ${COUNT} > ${DIR}/iostat_${DAT}.log 2>&1 &
		# network check
		#/usr/bin/sar -n DEV ${DELAY} ${COUNT} > ${DIR}/net_${DAT}.log 2>&1 &
		#/usr/bin/sar -n EDEV ${DELAY} ${COUNT} > ${DIR}/net_edev_${DAT}.log 2>&1 &
  fi 
fi


linux通过内存的占用比shell 记录日志

原文:http://my.oschina.net/u/998304/blog/520590

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!