zoukankan      html  css  js  c++  java
  • 【Shell脚本】统计本机内存情况和使用状况的脚本

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    #!/bin/bash
    #########################################################################
    # Author: Futuredaemon
    # Created Time: Thu 19 Nov 2009 10:57:15 PM CST
    # File Name: checkMem.sh
    # Description: 
    #########################################################################
    
    #fetch and process memory information
    [ -f /proc/meminfo ] && {  #First judge whether the file exists
    #-e是模式的意思,常用来保护以破折号开头的模式。
    #-w是全字匹配。
    #-i忽略大小写。
    #-d指定分割符,-f为按照分割符取出的域,2-指的是域2及以后
    Buffers=`grep -we 'Buffers' /proc/meminfo | cut -d' ' -f2- | tr -d "[A-Z][a-z] "`
    Cached=`grep -we 'Cached' /proc/meminfo | cut -d' ' -f2- | tr -d "[A-Z][a-z] "`
    MemFree=`grep -ie 'MemFree' /proc/meminfo | cut -d' ' -f2- | tr -d "[A-Z][a-z] "`
    MemTotal=`grep -ie 'MemTotal' /proc/meminfo | cut -d' ' -f2- | tr -d "[A-Z][a-z] "`
    SwapCached=`grep -ie 'SwapCached' /proc/meminfo | cut -d' ' -f2- | tr -d "[A-Z][a-z] "`
    SwapFree=`grep -ie 'SwapFree' /proc/meminfo | cut -d' ' -f2- | tr -d "[A-Z][a-z] "`
    SwapTotal=`grep -ie 'SwapTotal' /proc/meminfo | cut -d' ' -f2- | tr -d "[A-Z][a-z] "`
    }
    
    MEMUSED="$(( ( ( ( $MemTotal - $MemFree ) - $Cached ) - $Buffers ) / 1024 ))"
    MEMTOTAL="$(( $MemTotal / 1024))"
    MEMFREE="$(( $MEMTOTAL - $MEMUSED ))"
    MEMPER="$(( ( $MEMUSED * 100 ) / $MEMTOTAL ))"
    [ "$SwapTotal" -gt "1" ] && {
      SWAPUSED="$(( ( ( $SwapTotal - $SwapFree ) - $SwapCached ) / 1024 ))"
      SWAPTOTAL="$(( $SwapTotal / 1024))"
      SWAPFREE="$(( $SWAPTOTAL - $SWAPUSED ))"
      SWAPPER="$(( ( $SWAPUSED * 100 ) / $SWAPTOTAL ))" 
    } || {
      SWAPUSED="0"
      SWAPTOTAL="0"
      SWAPPER="0" 
    }
    
    # display the information
    /bin/echo
    /bin/echo "Memory"
    /bin/echo "Used: $MEMUSED MB"
    /bin/echo "Free: $MEMFREE MB"
    /bin/echo "Total: $MEMTOTAL MB"
    /bin/echo
    /bin/echo "Swap"
    /bin/echo "Used: $SWAPUSED MB"
    /bin/echo "Free: $SWAPFREE MB"
    /bin/echo "Total: $SWAPTOTAL MB"
    /bin/echo
    
    

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/


                   作者:gnuhpc
                   出处:http://www.cnblogs.com/gnuhpc/
                   除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


    分享到:

  • 相关阅读:
    UVALive 4660 A+B
    UVALive 4660 A+B
    UVA10474 Where is the Marble?
    UVA10474 Where is the Marble?
    UVA1339 UVALive3213 POJ2159 ZOJ2658 Ancient Cipher【密码】
    hdu_1108 最小公倍数
    hdu_1106 排序
    hdu_1205 吃糖果
    hdu_1201 18岁生日
    hdu_1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2844261.html
Copyright © 2011-2022 走看看