Bash脚本是一种用于自动化任务的脚本语言,它在Linux系统中非常常见,通过编写Bash脚本,我们可以轻松地获取CPU和内存使用情况,本文将详细介绍如何使用Bash脚本获取CPU和内存使用情况,并提供一些相关问题与解答。
CPU使用情况
1、获取CPU使用率
要获取CPU使用率,我们可以使用top
命令的输出,我们需要创建一个名为get_cpu_usage.sh
的Bash脚本,并添加以下内容:
!/bin/bash cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *([0-9.]*\)%* id.*/\1/" | awk '{print 100 $1"%"}') echo "CPU使用率: $cpu_usage"
解析:
top -bn1
:执行一次top
命令,以秒为单位刷新。
grep "Cpu(s)"
:从top
命令的输出中筛选包含"Cpu(s)"的行。
sed "s/.*, *\([0-9.]*\)%* id.*/\1/"
:使用正则表达式提取CPU使用率。
awk '{print 100 $1"%"}'
:计算百分比并输出结果。
2、获取CPU负载情况
要获取CPU负载情况,我们可以使用uptime
命令,创建一个名为get_cpu_load.sh
的Bash脚本,并添加以下内容:
!/bin/bash load_average=$(uptime | awk '{print $10,$11,$12}') echo "CPU负载: $load_average"
解析:
uptime
:显示系统的运行时间信息。
awk '{print $10,$11,$12}'
:从uptime
命令的输出中提取负载平均值。
内存使用情况
1、获取总内存大小和已使用内存大小
要获取总内存大小和已使用内存大小,我们可以使用free
命令,创建一个名为get_memory_usage.sh
的Bash脚本,并添加以下内容:
!/bin/bash total_memory=$(free -h | awk '/^Mem:/ {print $2}') used_memory=$(free -h | awk '/^Mem:/ {print $3}') echo "总内存大小: $total_memory" echo "已使用内存大小: $used_memory"
解析:
free -h
:以人类可读的格式显示内存使用情况。
awk '/^Mem:/ {print $2}'
:从free
命令的输出中提取总内存大小。
awk '/^Mem:/ {print $3}'
:从free
命令的输出中提取已使用内存大小。
2、获取缓存和缓冲区内存大小
要获取缓存和缓冲区内存大小,我们可以使用free
命令,创建一个名为get_memory_cache_buffer.sh
的Bash脚本,并添加以下内容:
!/bin/bash cache_memory=$(free -h | awk '/^Cached:/ {print $2}') buffer_memory=$(free -h | awk '/^Buffers:/ {print $2}') echo "缓存内存大小: $cache_memory" echo "缓冲区内存大小: $buffer_memory"
解析:
free -h | awk '/^Cached:/ {print $2}'
:从free
命令的输出中提取缓存内存大小。
free -h | awk '/^Buffers:/ {print $2}'
:从free
命令的输出中提取缓冲区内存大小。
相关问题与解答
1、如何监控CPU和内存的使用情况?
答:可以使用上面介绍的Bash脚本来监控CPU和内存的使用情况,将脚本保存为.sh
文件,然后给予执行权限(chmod +x get_cpu_usage.sh get_cpu_load.sh get_memory_usage.sh get_memory_cache_buffer.sh
),最后运行脚本即可。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/161016.html