获取linux内存、cpu、磁盘IO等信息shell脚本及其原理详解( 三 )

  1. vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控 。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析 。vmstat -n 1 1只显示一次各字段名称 。
-n:只在开始时显示一次各字段名称 。
  1. sed -n 3p将第一步的结果打印出第3行
参数说明:    -n或--quiet或--silent 取消自动打印模式空间,仅显示script处理后的结果 。动作说明:    p :打印,亦即将某个选择的数据印出 。通常 p 会与参数 sed -n 一起运行~
  1. **awk '{print $1}'`**将第2步结果得出的字符串分割,并打印第一个字符串

获取linux内存、cpu、磁盘IO等信息shell脚本及其原理详解

文章插图
vmstat
5、获取CPU负载信息# 获取CPU15分钟前到现在的负载平均值cpu_load_15min=`uptime | awk '{print $11}' | cut -f 1 -d ','`echo "CPU 15分钟前到现在的负载平均值:"$cpu_load_15min # 获取CPU5分钟前到现在的负载平均值cpu_load_5min=`uptime | awk '{print $10}' | cut -f 1 -d ','`echo "CPU 5分钟前到现在的负载平均值:"$cpu_load_5min # 获取CPU1分钟前到现在的负载平均值cpu_load_1min=`uptime | awk '{print $9}' | cut -f 1 -d ','`echo "CPU 1分钟前到现在的负载平均值:"$cpu_load_1min
  1. uptime 命令可以用来查看服务器已经运行了多久,当前登录的用户有多少,以及服务器在过去的1分钟、5分钟、15分钟的系统平均负载值 。系统负载是处于可运行runnable或不可中断uninterruptable状态的进程的平均数 。可运行状态的进程要么正在使用 CPU 要么在等待使用 CPU 。不可中断状态的进程则正在等待某些 I/O 访问,例如等待磁盘 IO 。有三个时间间隔的平均值 。负载均值的意义根据系统中 CPU 的数量不同而不同,负载为 1 对于一个只有单 CPU 的系统来说意味着负载满了,而对于一个拥有 4 CPU 的系统来说则意味着 75% 的时间里都是空闲的 。
  2. 参考之前脚本分析,**awk '{print $9}' | cut -f 1 -d ','**将第一步的结果分割开,并得到第9个字符串,然后用‘,’分隔开,并得到分割后的第一个字符串

获取linux内存、cpu、磁盘IO等信息shell脚本及其原理详解

文章插图
uptime
6、获取内存信息# 获取物理内存总量mem_total=`free | grep Mem | awk '{print $2}'`echo "物理内存总量:"$mem_total # 获取操作系统已使用内存总量mem_sys_used=`free | grep Mem | awk '{print $3}'`echo "已使用内存总量(操作系统):"$mem_sys_used # 获取操作系统未使用内存总量mem_sys_free=`free | grep Mem | awk '{print $4}'`echo "剩余内存总量(操作系统):"$mem_sys_free # 获取应用程序已使用的内存总量mem_user_used=`free | sed -n 3p | awk '{print $3}'`echo "已使用内存总量(应用程序):"$mem_user_used # 获取应用程序未使用内存总量mem_user_free=`free | sed -n 3p | awk '{print $4}'`echo "剩余内存总量(应用程序):"$mem_user_free  # 获取交换分区总大小mem_swap_total=`free | grep Swap | awk '{print $2}'`echo "交换分区总大小:"$mem_swap_total # 获取已使用交换分区大小mem_swap_used=`free | grep Swap | awk '{print $3}'`echo "已使用交换分区大小:"$mem_swap_used # 获取剩余交换分区大小mem_swap_free=`free | grep Swap | awk '{print $4}'`echo "剩余交换分区大小:"$mem_swap_free 
  1. free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存 。
  2. grep Swap将第一步的结果过滤只显示包含字符串Swap的行
  3. **awk '{print $4}'**将第二步结果分割,并打印出第四个字符串的值

获取linux内存、cpu、磁盘IO等信息shell脚本及其原理详解

文章插图
 
【其他脚本参考前面的分析】


推荐阅读