博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云提供的一个监测cpu和内存的shell脚本(get_cpu_mem_info.sh)
阅读量:7009 次
发布时间:2019-06-28

本文共 4508 字,大约阅读时间需要 15 分钟。

hot3.png

阿里云提供的监测cpu和内存相关的一个shell脚本。

 

使用方式,直接放到/tmp下 然后运行

nohup bash get_cpu_mem_info.sh &
1,下载该文件解压后,上传到 /tmp 目录中。2,运行 cd 切换到/tmp目录。3,执行: nohup bash get_cpu_mem_info.sh &该工具会在 /tmp 目录下生成一个日志文件,记录实时监控系统的 CPU、内存的使用情况,等到系统异常时可以用于分析日志。

 

get_cpu_mem_info.sh

#!/bin/bash#When the free memory very less ,this script to collect CPU/memory usage information and dmessage information. #Version 1.0 time:2014-3-11#Version 2.0 time:2014-12-23logfile=/tmp/$0.logcheck_os_release(){  while true  do    os_release=$(grep "Red Hat Enterprise Linux Server release" /etc/issue 2>/dev/null)    os_release_2=$(grep "Red Hat Enterprise Linux Server release" /etc/redhat-release 2>/dev/null)    if [ "$os_release" ] && [ "$os_release_2" ]    then      if echo "$os_release"|grep "release" >/dev/null 2>&1      then        os_release=redhat        echo "$os_release"      else        os_release=""        echo "$os_release"      fi      break    fi    os_release=$(grep "Aliyun Linux release" /etc/issue 2>/dev/null)    os_release_2=$(grep "Aliyun Linux release" /etc/aliyun-release 2>/dev/null)    if [ "$os_release" ] && [ "$os_release_2" ]    then      if echo "$os_release"|grep "release" >/dev/null 2>&1      then        os_release=aliyun        echo "$os_release"      else        os_release=""        echo "$os_release"      fi      break    fi    os_release_2=$(grep "CentOS" /etc/*release 2>/dev/null)    if [ "$os_release_2" ]    then      if echo "$os_release_2"|grep "release" >/dev/null 2>&1      then        os_release=centos        echo "$os_release"      else        os_release=""        echo "$os_release"      fi      break    fi    os_release=$(grep -i "ubuntu" /etc/issue 2>/dev/null)    os_release_2=$(grep -i "ubuntu" /etc/lsb-release 2>/dev/null)    if [ "$os_release" ] && [ "$os_release_2" ]    then      if echo "$os_release"|grep "Ubuntu" >/dev/null 2>&1      then        os_release=ubuntu        echo "$os_release"      else        os_release=""        echo "$os_release"      fi      break    fi    os_release=$(grep -i "debian" /etc/issue 2>/dev/null)    os_release_2=$(grep -i "debian" /proc/version 2>/dev/null)    if [ "$os_release" ] && [ "$os_release_2" ]    then      if echo "$os_release"|grep "Linux" >/dev/null 2>&1      then        os_release=debian        echo "$os_release"      else        os_release=""        echo "$os_release"      fi      break    fi    break    done}rhel_fun(){  while true  do    vm_mem=$(free -m|grep "buffers/cache"|awk '{print $4}')    cpu=$(top -bn2|grep "Cpu(s)"|awk '{print $8}'|awk -F'%' '{print $1}'|tail -n1)    check_cpu=$(echo "$cpu <20" |bc)    if [[ $vm_mem -le 100 ]] || [[ $check_cpu -eq 1  ]]    then      echo "======================================================" >>$logfile      date >>$logfile      echo "======================================================" >>$logfile      echo "The memory is too less." >>$logfile      free -m >>$logfile      echo "=======================CPU info========================" >>$logfile      (ps aux|head -1;ps aux|sort -nrk3|grep -v "RSS") >>$logfile      echo "=======================Memory info=====================" >>$logfile      (ps aux|head -1;ps aux|sort -nrk6|grep -v "RSS") >>$logfile      date >>$logfile      echo "=======================Dmesg info=====================" >>$logfile      dmesg >>$logfile      dmesg -c    fi    sleep 10  done}debian_fun(){  while true  do    vm_mem=$(free -m|grep "buffers/cache"|awk '{print $4}')    cpu=$(top -bn2|grep "Cpu(s)"|awk '{print $5}'|awk -F'%' '{print $1}'|tail -n1)    check_cpu=$(echo "$cpu <20" |bc)    if [[ $vm_mem -le 100 ]] || [[ $check_cpu -eq 1  ]]    then      echo "======================================================" >>$logfile      date >>$logfile      echo "======================================================" >>$logfile      echo "The memory is too less." >>$logfile      free -m >>$logfile      echo "=======================CPU info========================" >>$logfile      (ps aux|head -1;ps aux|sort -nrk3|grep -v "RSS") >>$logfile      echo "=======================Memory info=====================" >>$logfile      (ps aux|head -1;ps aux|sort -nrk6|grep -v "RSS") >>$logfile      date >>$logfile      echo "=======================Dmesg info=====================" >>$logfile      dmesg >>$logfile      dmesg -c    fi    sleep 10  done}check_os_releasecase "$os_release" inredhat|centos|aliyun)  yum install bc -y  rhel_fun  ;;debian|ubuntu)  apt-get install bc -y  debian_fun  ;;esac

 

转载于:https://my.oschina.net/lenglingx/blog/1577044

你可能感兴趣的文章
【分享】Java中如何读写cookie
查看>>
word导出html实现在线预览
查看>>
redhat 7.x 、redhat 6.x查看硬盘UUID方法
查看>>
nginx做负载均衡,引起写io大的优化
查看>>
关于博客不能显示上传图片的问题
查看>>
AMD
查看>>
.net webapi自定义序列化时间
查看>>
将博客搬至CSDN
查看>>
Unity 中Token的应用
查看>>
Mysql 基于 Amoeba 的 读写分离
查看>>
借口退避算法
查看>>
我的友情链接
查看>>
IMAP4协议让企业邮件系统收发更灵活方便
查看>>
Hadoop MapReduce流程
查看>>
exe4j 给jar打包exe文件
查看>>
win ser 2003域架构升级到win ser2008域架构
查看>>
10个最好用的在线编译/调试工具
查看>>
我的友情链接
查看>>
利用栈操作写的迷宫程序
查看>>
python练习-raw_input()
查看>>