shell编程-计算系统当前的cpu,内存,磁盘的利用率

shell编程-计算系统当前的cpu,内存,磁盘的利用率

忧伤的一天,直接上代码

#!/usr/bin/env bash
get_cpu_time_splice_number()
{
    # 获取cpu各个时间片的数量
    cpu_time_splice_numbers_now=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
    # 获取当前cpu空闲时间片
    eval ${1}=$(echo ${cpu_time_splice_numbers_now} | awk '{print $4}')
    # 获取当前总的cpu时间片
    eval ${2}=$(echo ${cpu_time_splice_numbers_now} | awk '{print $1+$2+$3+$4+$5+$6+$7}')
}

get_cpu_rate()
{
    # 声明相隔1秒的cpu空闲时间片和总时间片变量
    declare idle_cpu_time_splice_now idle_cpu_time_splice_end total_cpu_time_splice_now total_cpu_time_splice_end
    get_cpu_time_splice_number idle_cpu_time_splice_now total_cpu_time_splice_now
    sleep 1
    get_cpu_time_splice_number idle_cpu_time_splice_end total_cpu_time_splice_end
    # 获取cpu空闲时间差
    cpu_idle_number=`expr ${idle_cpu_time_splice_end} - ${idle_cpu_time_splice_now}`
    # 获取cpu总时间片差
    cpu_total_number=`expr ${total_cpu_time_splice_end} - ${total_cpu_time_splice_now}`
    cpu_rate=`awk 'BEGIN{printf "%.2f", 100 - '${cpu_idle_number}' / '${cpu_total_number}' * 100}'`
    echo ${cpu_rate}
}

get_memory_rate()
{
    # 获取系统物理内存大小,单位KB
    totalMemSize=$(awk '/MemTotal:/ {print $2}' /proc/meminfo)
    # 获取系统可用内存大小,单位KB
    freeMemSize=$(awk '/MemFree:/ {print $2}' /proc/meminfo)
    # 获取buffer大小,单位KB
    bufferMemSize=$(awk '/Buffers:/ {print $2}' /proc/meminfo)
    # 获取cache大小,单位KB
    cacheMemSize=$(awk '/^Cached:/ {print $2}' /proc/meminfo)
    # 使用的内存大小
    usedMemSize=`expr ${totalMemSize} - ${freeMemSize} - ${bufferMemSize} - ${cacheMemSize}`
    # 内存使用率
    memPercent=`awk 'BEGIN{printf "%.2f",'${usedMemSize}'/'${totalMemSize}' * 100}'`
    echo ${memPercent}
}

get_disk_rate() {
    # 获取磁盘总量
    totalDiskSize=$(df |grep -w "/" | awk '{if(NR == 1)print $2}')
    # 获取磁盘使用量
    usedDiskSize=$(df |grep -w "/" | awk '{if(NR == 1)print $3}')
    # 磁盘使用率
    diskPercent=`awk 'BEGIN{printf "%.2f",'${usedDiskSize}'/'${totalDiskSize}' * 100}'`
    echo ${diskPercent}
}

main()
{
    #输出cpu,内存,硬盘的使用率
    echo "cpu使用率:" $(get_cpu_rate)
    echo "内存使用率:" $(get_memory_rate)
    echo "磁盘使用率:" $(get_disk_rate)
}
main

日常学习,重在积累

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值