Linux监控系统CPU、内存、磁盘空间和网口收发脚本

来源:互联网 发布:淘宝上好看的包包店铺 编辑:程序博客网 时间:2024/06/09 19:14
#!/bin/bash

get_cpu_info()
{
    cat /proc/stat |grep "^cpu" |head -n1 |awk '{used=$2+$3+$4+$6+$7+$8;unused=$2+$3+$4+$5+$6+$7+$8} END{print used, unused}'
}

while true
do
    time_point_1=`get_cpu_info`
    tx_pre=$(cat /proc/net/dev |grep eth0 |tr : " " |awk '{print $10}')
    rx_pre=$(cat /proc/net/dev |grep eth0 |tr : " " |awk '{print $2}')

    sleep 60
    time_point_2=`get_cpu_info`
    tx_next=$(cat /proc/net/dev |grep eth0 |tr : " " |awk '{print $10}')
    rx_next=$(cat /proc/net/dev |grep eth0 |tr : " " |awk '{print $2}')

    mem_used=$(free -m |grep "Mem:" |awk '{print $3}')
    mem_free=$(free -m |grep "Mem:" |awk '{print $4}')
    disk_used=$(df -h |grep "rootfs" |awk '{print $3}')
    disk_free=$(df -h |grep "rootfs" |awk '{print $4}')

    cpu_rate=`echo $time_point_1 $time_point_2 |awk '{used=$3-$1;total=$4-$2; if(total>0) {print used*100/total}}'`
    tx=$((${tx_next}-${tx_pre}))
    rx=$((${rx_next}-${rx_pre}))


    echo -e "`date "+%Y-%m-%d %k:%M:%S"` "
    echo "cpu share: $cpu_rate"%" "
    echo "net dev tx: $tx rx: $rx"
    echo "memory used: $mem_used free: $mem_free "
    echo "rootfs used: $disk_used available: $disk_free "

done
0 0
原创粉丝点击