实现目标:
在Linux上使用shell脚本回显系统当前的CPU使用率、内存使用率和磁盘空间使用率
1.CPU使用率:
使用top命令能够实时显示系统中各个进程的资源占用状况,所以这边可以使用top命令,截取CPU占用情况的那一段,之后输出想要的结果。
由于“top”命令是实时回显信息,不方便操作。所以使用“top -n1”,通过添加参数让top命令只显示一次结果。使用“top -n1”输出如下信息:
- us:用户空间占用CPU百分比
- sy:内核空间占用CPU百分比
- ni:用户进程空间内改变过优先级的进程占用CPU百分比
- id:空闲CPU百分比
- wa:等待输入输出的CPU时间百分比
- hi:硬件中断
- si:软件中断
- st:虚拟机占用物理机的百分比
我想要获得CPU当前占用率,只需要使用100减去空闲CPU即可。
使用awk命令获取空闲CPU。awk默认按空格切割字符串,根据上图显示可以确认id的数值在第8个,使用100减去该值即可获取当前CPU占用率,所以使用命令“top -n1 | fgrep “Cpu(s)” | awk ‘{print 100-$8}’”,显示如下图所示:
- Men:物理内存
- Swap:交换内存
- total:总内存大小
- used:已使用的大小
- free:空闲大小
- shared:被共享使用的物理内存大小
- buff/cache:显示被 buffer 和 cache 使用的物理内存大小
- available:显示还可以被应用程序使用的物理内存大小
我想要获得系统当前内存的占用率,只需要使用used的物理内存除以total的物理内存即可。
首先使用fgrep获取Mem的数据,如下图所示:
3.磁盘使用率:
使用df命令可以查看磁盘使用情况,添加参数-h将数据以可读形式输出,结果如下图所示:
4.编写shell脚本
在知道了需要使用的命令之后,就可以开始编写shell脚本了。先使用date获取当前系统时间,之后获取CPU使用率,内存使用率和磁盘使用率。然后echo输出即可。代码如下:
执行脚本获得如下输出:

本学习笔记脚本所参考的文章:https://cloud.tencent.com/developer/article/1931440
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8670 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!