You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
shell-project/os/get-os-info.sh

82 lines
3.4 KiB

#!/usr/bin/bash
unset c
color(){
declare -A c=([Error]=31 [Success]=32 [Warning]=33 [Info]=34)
#echo -e "\033[${c[$1]}m[`date +%T`]($1) $2\033[0m"
printf "\033[${c[$1]}m%-10s%-10s %-30s\033[0m\n" "[`date +%T`]" "($1)" "$2"
sleep 0.5
}
cpu(){
cpus=$(grep processor /proc/cpuinfo |wc -l)
cpuModel=$(grep "model name" /proc/cpuinfo | uniq | awk -F ':' '{print $2}')
cpuCache=$(grep "cache size" /proc/cpuinfo | uniq | awk -F ':' '{print $2}')
printf "%-10s\t%-50s\n" "[CPU]" "[Info]"
printf "%-10s\t%-50s\n" "cpu核心:" "${cpus/ /}"
printf "%-10s\t%-50s\n" "cpu型号:" "${cpuModel/ /}"
printf "%-10s\t%-50s\n" "cpu缓存:" "${cpuCache/ /}"
}
memory(){
memTotal=$(awk -F':' '/MemTotal:/{print $2}' /proc/meminfo | awk '{print $1,$2}')
memFree=$(awk -F':' '/MemFree:/{print $2}' /proc/meminfo | awk '{print $1,$2}')
memBuffer=$(awk -F':' '/Buffers:/{print $2}' /proc/meminfo | awk '{print $1,$2}')
memCached=$(awk -F':' '/^Cached:/{print $2}' /proc/meminfo | awk '{print $1,$2}')
swapTotal=$(awk -F':' '/SwapTotal:/{print $2}' /proc/meminfo | awk '{print $1,$2}')
swapFree=$(awk -F':' '/SwapFree:/{print $2}' /proc/meminfo | awk '{print $1,$2}')
memDevice=$(dmidecode |grep -P -A 5 "Memory Device"|grep Size|grep -v 'Range' | wc -l)
maxMem=$(dmidecode |grep "Maximum Capacity" | awk '{print $3,$4}')
maxHz=$(dmidecode |grep "Max Speed" |uniq | awk '{print $3,$4}')
printf "%-10s\t%-50s\n" "[Memory]" "[Info]"
printf "%-10s\t%-50s\n" "内存总量:" "$memTotal"
printf "%-10s\t%-50s\n" "内存剩余:" "$memFree"
printf "%-10s\t%-50s\n" "内存写缓:" "$memBuffer"
printf "%-10s\t%-50s\n" "内存读缓:" "$memCached"
printf "%-10s\t%-50s\n" "临时缓存总量:" "$swapTotal"
printf "%-10s\t%-50s\n" "临时缓存剩余:" "$swapFree"
printf "%-10s\t%-50s\n" "内存条数:" "$memDevice"
printf "%-10s\t%-50s\n" "最大支持内存:" "$maxMem"
printf "%-10s\t%-50s\n" "内存频率:" "$maxHz"
}
disk(){
printf "%-10s\t%-15s\t%-30s\t%-5s\n" "[MountPoint]" "[Used]" "[FileSystem]" "[Size]"
df -Th | awk 'BEGIN{ORS="\n"}$2 ~ /(ext|xfs)/{printf "%-10s\t%-15s\t%-30s\t%-5s\n",$NF,$(NF-1),$1,$3}'
}
os(){
os_release=$(hostnamectl | awk -F': ' '/Operating System/{print $2}')
os_kernel=$(hostnamectl | awk -F': ' '/Kernel/{print $2}')
hostname=$(hostnamectl | awk -F': ' '/Static hostname/{print $2}')
printf "%-10s\t%-20s\n" "[Info]" "[Value]"
printf "%-20s\t%-20s\n" "系统版本:" "$os_release"
printf "%-20s\t%-20s\n" "内核版本:" "$os_kernel"
printf "%-20s\t%-20s\n" "主机名称:" "$hostname"
netIf=$(ip -f inet a | awk '/^[0-9]/{print $0}' |awk -F':' '{print $2}')
netIfs=$(echo netIf |wc -w)
printf "%-20s\t%-20s\t%-18s\n" "[InterFace]" "[IpAddress]" "[MacAddress]"
for i in $netIf
do
# 网卡ip
iname=$(ip -f inet a show dev $i | awk '/inet/{print $2}')
# 网卡mac
mname=$(ip -f link a show dev $i |awk '/link/{print $2}')
printf "%-20s\t%-20s\t%-18s\n" "$i" "$iname" "$mname"
done
}
color Info "开始读取本地信息"
main(){
color Success "中央处理器信息"
# cpu 信息查询函数
cpu
color Success "内存信息"
# 内存 信息查询函数
memory
color Success "网络信息"
os
# 磁盘信息
color Success "磁盘信息"
disk
}
main