Linux之自制系统信息查询命令之systeminfo

  • A+
所属分类:Linux  Shell脚本  编程&脚本
摘要

这是我后面的一个重要的事情,暂时给出一个最最最最最简易的版本 最最最最最简易的版本 最最最最最简易的版本 ,重要的事情说三遍

使用方法:

wget http://www.dwhd.org/script/systeminfo -O /bin/systeminfo
chmod +x /bin/systeminfo

#使用方法,暂时只有五个参数
systeminfo {cpu|mem|uptime|disk|all}

Linux之自制系统信息查询命令之systeminfo

脚本源码

#!/bin/bash
#########################################################################
# File Name: systeminfo.sh
# Author: LookBack
# Email: admin#dwhd.org
# Version:
# Created Time: Sun 26 Jul 2015 05:53:31 PM CST
#########################################################################

uptime() {
        #系统开机时间
        echo "系统开机时间:$(date -d "$(awk '{printf("%d\n",$1~/./?int($1)+1:$1)}' /proc/uptime) second ago" +"%F %T")"
        #系统已经运行时间
        awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60;d=$1%60}{printf("系统已经运行%d天%d时%d分%d秒\n",a,b,c,d)}' /proc/uptime
}

cpuinfo() {
        #CPU型号
        awk -F':[ ]' '/model name/{printf ("CPU型号:%s\n",$2);exit}' /proc/cpuinfo
        #CPU详情
        awk -F':[ ]' '/physical id/{a[$2]++}END{for(i in a)printf ("%s号CPU\t线程数:%s\n",i+1,a[i]);printf("CPU总颗数:%s\n",i+1)}' /proc/cpuinfo
        #CPU频率
        awk '/model name/{print "CPU频率:"$NF;exit}' /proc/cpuinfo
}

meminfo() {
        #内存大小
        awk '/MemTotal/{a=$2/(1024^2);if(a<1){a=$2/1024;printf ("内存:%dM\n",a~/\./?int(a)+1:a)}else printf("内存:%dG\n",a~/\./?int(a)+1:a)}' /proc/meminfo
}

diskinfo() {
	fdisk -l | awk '/(Disk )?\/dev\//'
}
case "$1" in
	cpu)
		cpuinfo
		;;
	mem)
		meminfo
		;;
	uptime)
		uptime
		;;
	disk)
		diskinfo
		;;
	all)
		for i in `awk -F\( '/^([a-z]|[0-9]|_).*\(\)/{print $1}' $0`; do $i && echo "";done
		;;
	*)
		echo $"Usage: $0 {cpu|mem|uptime|disk|all}"
		exit 2
esac
lookback

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: