1.脚本如下~

  1. #!/bin/bash 
  2. #========================================= 
  3. #File:      check_vm.sh 
  4. #Description: 
  5. #Author:    smileliuyb 
  6. #Modify:    smileliuyb 
  7. #Creation Date: 2013-1-14 
  8. #Last Modified: 2013-1-14 
  9. #========================================= 
  10.  
  11. #======check-arg===============
  12. if [[ $4 != "" ]];then 
  13.     echo $2 $4 | awk '$1 !~ /^[0-9]*[0-9,M,m,G,g]$/ || $2 !~ /^[0-9]*[0-9,m,g,M,G]$/{print "User like ./check_vm.sh -w freememory[M,G] -c freememory[M,G]";exit 3}' 
  14.     if [ $? -eq 3 ];then 
  15.         exit 3 
  16.     fi 
  17.     if [[ $1 == '-w' ]] && [[ $3 == '-c' ]];then 
  18.         warning=`echo $2 | awk '$1 ~ /[0-9]$/{print $1};$1 ~ /[m,M]$/{print $1*1024};$1 ~ /[g,G]$/{print $1*1024*1024}'
  19.         critical=`echo $4 | awk '$1 ~ /[0-9]$/{print $1};$1 ~ /[m,M]$/{print $1*1024};$1 ~ /[g,G]$/{print $1*1024*1024}'
  20.     elif [[ $1 == '-c' ]] && [[ $3 == '-w' ]];then 
  21.         warning=`echo $4 | awk '$1 ~ /[0-9]$/{print $1};$1 ~ /[m,M]$/{print $1*1024};$1 ~ /[g,G]$/{print $1*1024*1024}'
  22.         critical=`echo $2 | awk '$1 ~ /[0-9]$/{print $1};$1 ~ /[m,M]$/{print $1*1024};$1 ~ /[g,G]$/{print $1*1024*1024}'
  23.     else 
  24.         echo "User like ./check_vm.sh -w freememory[M,G] -c freememory[M,G]" 
  25.         exit 3 
  26.     fi 
  27. else 
  28.     echo "User like ./check_vm.sh -w freememory[M,G] -c free[M,G]" 
  29.     exit 3 
  30. fi 
  31.  
  32. #====see-mem and comparison with arg========
  33. freemem=`free -m | cut -d " " -f17` 
  34. if [ $(( freemem*1024 )) -le $critical ];then 
  35.     echo "Insufficient memory,Only"$freemem"M are free!" 
  36.     exit 2 
  37. elif [ $(( freemem*1024 )) -le $warning ];then 
  38.     echo "Memory Warning,Only"$freemem"M are free!" 
  39.     exit 1 
  40. else 
  41.     echo "Memory OK" 
  42.     exit 0 
  43. fi