- vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控 。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析 。vmstat -n 1 1只显示一次各字段名称 。
-n:只在开始时显示一次各字段名称 。
- sed -n 3p将第一步的结果打印出第3行
参数说明: -n或--quiet或--silent 取消自动打印模式空间,仅显示script处理后的结果 。动作说明: p :打印,亦即将某个选择的数据印出 。通常 p 会与参数 sed -n 一起运行~
- **awk '{print $1}'`**将第2步结果得出的字符串分割,并打印第一个字符串
文章插图
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
- uptime 命令可以用来查看服务器已经运行了多久,当前登录的用户有多少,以及服务器在过去的1分钟、5分钟、15分钟的系统平均负载值 。系统负载是处于可运行runnable或不可中断uninterruptable状态的进程的平均数 。可运行状态的进程要么正在使用 CPU 要么在等待使用 CPU 。不可中断状态的进程则正在等待某些 I/O 访问,例如等待磁盘 IO 。有三个时间间隔的平均值 。负载均值的意义根据系统中 CPU 的数量不同而不同,负载为 1 对于一个只有单 CPU 的系统来说意味着负载满了,而对于一个拥有 4 CPU 的系统来说则意味着 75% 的时间里都是空闲的 。
- 参考之前脚本分析,**awk '{print $9}' | cut -f 1 -d ','**将第一步的结果分割开,并得到第9个字符串,然后用‘,’分隔开,并得到分割后的第一个字符串
文章插图
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
- free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存 。
- grep Swap将第一步的结果过滤只显示包含字符串Swap的行
- **awk '{print $4}'**将第二步结果分割,并打印出第四个字符串的值
文章插图
【其他脚本参考前面的分析】
推荐阅读
- linux命令删除目录下所有文件?linux怎么删除目录下的文件
- 一篇文章讲清Linux操作系统的目录结构
- 检查Linux内存占用的 5 大命令,你知道几个?
- Linux服务器集群系统——LVS集群中的IP负载均衡技术
- Linux上TCP的几个内核参数调优
- 深入理解 Linux 内核中的 RCU 机制
- Linux 日志分析实战
- Linux驱动基础篇:LED驱动
- 你知道Linux中用户们的密码藏在哪儿吗?
- Linux文件系统EXT2,EXT3,ReiserFS详解