获取当前机器的系统指标
#!/bin/bash
#参下边文章
#http://www.cnblogs.com/emanlee/p/3587571.html
#http://www.2cto.com/os/201209/152795.html
#http://www.xuebuyuan.com/2192175.html
#http://blog.csdn.net/killermyth/article/details/39031819
#http://blog.chinaunix.net/uid-27050514-id-3862478.html
function system_base_data()
{
cpu_count=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
echo "物理CPU数量:"$cpu_count
cpu_kernel_count=`cat /proc/cpuinfo| grep "cpu cores"| uniq`
echo "每个物理CPU核数:"$cpu_kernel_count
cpu_processor_count=`cat /proc/cpuinfo| grep "processor"| wc -l`
echo "逻辑CPU数量:"$cpu_processor_count
cpu_type=`cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c`
echo "CPU类型:"$cpu_type
mem_all=`free -g|sed -n "2p" |awk '{print $2}'`
echo "内存共计:"$mem_all"GB"
}
function now_system_data()
{
#Cpud=$(iostat -c 1 2|awk 'NR==7 {print 100.0-$6}')
#echo "CPU use[iostat]:"$Cpud"%"
cpuuse=`top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.1f\n", prefix, 100 - v }'`
#echo "CPU use[top]:"$cpuuse"%"
#cpusar=`sar -n DEV -u 1 1 |grep all| awk '{print $3}'`
#echo "CPU use[sar]:"$cpusar"%"
#Memtotal=$(free |sed -n "2p"|awk '{print $2}')
#Memuser=$(free |sed -n "3p"|awk '{print $3}')
#MEM=$(awk 'BEGIN {x='$Memuser';y='$Memtotal';printf "%.2f\n",(x/y)*100}')
#echo "MEM use[free]:"$MEM"%"
mem=`free -m|grep Mem|awk '{print ($3-$6-$7)/$2*100.0}'`
#echo "MEM use[free]:"$mem"%"
Swaptotal=`free |sed -n "4p"|awk '{print $2}'`
Swapuser=`free |sed -n "4p"|awk '{print $3}'`
SWAP=$(awk 'BEGIN {x='$Swapuser';y='$Swaptotal';printf "%.2f\n",(x/(y+0.001))*100}')
#echo "使用Swap:"$SWAP"%"
rx=`sar -n DEV 1 1 |grep Average |grep bond0| awk '{print $5}'`
tx=`sar -n DEV 1 1 |grep Average |grep bond0| awk '{print $6}'`
#echo "rx:"$rx"k/s"
#echo "tx:"$tx"k/s"
load_1_minite=`uptime|awk -F"load average:" '{print $2}'|awk -F, '{print $1}'|sed 's/ *//'`
#echo "最近1分钟Load:"$load_1_minite
DATE=$(date +%Y%m%d)
TIME=$(date +"%H:%M:%S")
echo -e "name:\tnow_time\tcpu(%)\tmem(%)\trx(kb/s)\ttx(kb/s)\tload(last 1minite)"
echo -e "data:\t"$TIME"\t"$cpuuse"\t"$mem"\t"$rx"\t"$tx"\t"$load_1_minite
}
system_base_data
#由于指标大约5秒钟采集一次,所以一天时间是24*60*60/5次采集
i=0
while(($i<24*60*60/5))
do
now_system_data
done
USER=$(/usr/bin/who|awk '{print $1}'|xargs)