(7)利用监控工具vmstat实现监控

脚本基本要求
1 、监控工具vmstat
2 、此脚本针对于linux系统
3 、要求显示出用户进程执行消耗cpu的时间(user_time--us)
4 、要求显示出系统进程消耗cpu的时间(system_time sy)
5 、要求显示空闲时间
6 、要求显示等待IO时间

vmstat 1 3
信息以百分比表示
US--->如果这个比较高,长期超过50%,说明用户进程消耗的cpu时间多,
sy--->sys的值过高,这个不好的信息
ID
wa--->wa值过高,磁盘的问题。

#!/bin/bash

#======================================
pwddir = `pwd`
check_os = `uname`
cpu_info = `vmstat 1 2 > $pwddir/info.log`
us_info = `cat $pwddir/info.log | awk '{print $13}' | tail -1`
sy_info = `cat $pwddir/info.log | awk '{print $14}' | tail -1`
id_info = `cat $pwddir/info.log | awk '{print $15}' | tail -1`
wa_info = `cat $pwddir/info.log | awk '{print $16}' | tail -1`

#======================================
check_error()
{
    if [ $? -ne 0 ];then
    echo "$i error" > $pwddir/cpuerror.log
    return 1
    fi
}

#======================================
check_tools()
{
    which vmstat >/dev/null 2>&1
    check_error vmstat
    if [ check_os == "Linux" ];then
    cpu_info_zy
    else
    echo "os is not Linux" >>$pwddir/cpuerror.log
    return 1
    fi
}

cpu_info_zy()
{
    echo "cpu_sus:$us_info"
    echo "cpu_sy:$sy_info"
    echo "cpu_id:$id_info"
    echo "cpu_wa:$wa_info"
}   

main()
{
    check_tools
        if [ $? -eq 1 ];then
        echo "error"
        exit 1
    fi
}

main

你可能感兴趣的:((7)利用监控工具vmstat实现监控)