summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2016-03-26 12:14:10 +0100
committerStijn Buys <ingar@osirion.org>2016-03-26 12:14:10 +0100
commit42e600f01d629382f661c1c832e95a5070b58b7a (patch)
treee7694d5b9a205f68692555f11b56acd4baee6296
parentbf5cde89ca6dc435423b09c4cbe8467dc8526933 (diff)
parentc2adef241453fea1bdf27f8d78896fde7e8a88dc (diff)
Merge branch 'illwieckz/master'
-rwxr-xr-xsysinfo.sh79
1 files changed, 56 insertions, 23 deletions
diff --git a/sysinfo.sh b/sysinfo.sh
index 563e3f4..4b80d7f 100755
--- a/sysinfo.sh
+++ b/sysinfo.sh
@@ -18,14 +18,20 @@ swap_free=`cat /proc/meminfo | grep -i SwapFree | awk '{printf "%d",$2/1024;}'`
swap_used=`echo ${swap_total} ${swap_free} | awk '{printf "%d",$1-$2;}'`
#--- [ CPU ] --------------------------
-cpu=`cat /proc/cpuinfo | grep "model name" | head -n 1 | sed 's/^.*: //'`
+cpu=`cat /proc/cpuinfo | grep "model name" | head -n 1 | sed 's/[ ][ ]*/ /g;s/^.*: //' | sed -e 's/ @ .*//' | sed -e 's/ [A-Za-z]*[ -]Core Processor//' | sed -e 's/([Tt][Mm])//;s/([Rr])//'`
if [ -z "${cpu}" ]; then
# fallback
cpu=`uname -p`
fi
-cpu_speed=`cat /proc/cpuinfo | head -n 7 | tail -n 1 | cut -d ":" -f 2 | cut -d "." -f 1 | sed 's/^ *//'`
+cpu_speed=`cat /proc/cpuinfo | grep '^cpu MHz' | head -n 1 | cut -f2 -d':' | cut -c2- | cut -f1 -d'.'`
cpu_load=` cat /proc/loadavg | cut -d " " -f 1 | sed 's/,//'`
+cpu_count=`grep '^processor' /proc/cpuinfo | wc -l`
+if [ "${cpu_count}" -gt 1 ]
+then
+ cpu_count_notice=" * ${cpu_count} cores"
+fi
+
# Detect frequency scaler
if [ -f /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq ]; then
cpu_speed_max=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq | awk '{ printf "%d", $1/1000;}'`
@@ -40,30 +46,57 @@ disk_used=`echo $sua | awk '{printf "%d",$3/1048576;}'`;
disk_free=`echo $sua | awk '{printf "%d",$4/1048576;}'`;
#---[ VGA ] ---------------------------
-vga=""
+gpu=''
if [ -x `which lspci` ]; then
- vga=`lspci | grep VGA | cut -d ":" -f 3 | sed 's/ *(rev.*//' | sed 's/^ *//' | sed 's/^.*\[//' | sed 's/\].*//'`
+ gpu_slot=`lspci -mm | grep 'VGA' | head -n 1 | cut -f1 -d' '`
+ gpu_vendor=`lspci -s "${gpu_slot}" -mm -v | grep '^Vendor' | sed -e 's/Vendor:\t//' | sed -e 's/.*[ ]\[//;s/\].*//' | sed -e 's/, Inc.//;s/ Corporation//;s/ Co.//;s/,Ltd.//'`
+ gpu_model=`lspci -s "${gpu_slot}" -mm -v | grep '^Device' | sed -e 's/Device:\t//' | sed -e 's/.*[ ]\[//;s/\].*//'`
+ gpu="${gpu_vendor} ${gpu_model}"
fi
-#---[ PRINT LONG VERSION ]-------------
-#echo "[system] ${os} uptime: ${uptime}"
-#echo "[cpu] ${cpu} ${cpu_speed} Mhz"
-#echo "[memory] ${mem_total}Mib total ${mem_app} Mb used ${mem_free}Mb free ${mem_buffers}Mib buffers ${mem_cache}Mb cache"
-#echo "[swap] ${swap_total}Mib total ${swap_used} Mb used ${swap_free}Mib free"
-#echo "[disk] ${disk_size} Gib total ${disk_used} Gib used ${disk_free} Gib free"
+#---[ OUTPUT ]------------------------
-#--- [ PRINT SHORT VERSION ]----------
+case "${1}" in
+ '-l'|'--long')
-echo -n "[${host}]"
-echo -n "[${os}]"
-echo -n "[${cpu}]"
-if [ "x${vga}" != "x" ]; then
- echo -n "[${vga}]"
-fi
-echo -n "[Memory used: ${mem_used}/${mem_total} Mib]"
-echo -n "[Swap used: ${swap_used}/${swap_total} Mib]"
-echo -n "[Disk used: ${disk_used}/${disk_size} Gib]"
-echo -n "[Load ${cpu_load}]"
-echo -n "[Uptime ${uptime}]"
-echo ""
+ #---[ LONG VERSION ]--
+
+ gpu_line=''
+ if [ ! -z "${gpu}" ]; then
+ gpu_line="[gpu] ${gpu}"
+ fi
+
+ # output until EOF, strip leading TAB characters and empty lines
+ grep -v '^$' <<-EOF
+ [host] ${host}
+ [system] ${os}, uptime: ${uptime}, load: ${cpu_load}
+ [cpu] ${cpu}${cpu_count_notice}, ${cpu_speed} Mhz
+ ${gpu_line}
+ [memory] ${mem_total} MiB total, ${mem_used} MiB used, ${mem_free} MiB free
+ [swap] ${swap_total} MiB total, ${swap_used} MiB used, ${swap_free} MiB free
+ [disk] ${disk_size} GiB total, ${disk_used} GiB used, ${disk_free} GiB free
+ EOF
+ ;;
+ *)
+ #---[ SHORT VERSION ]-
+
+ gpu_line=''
+ if [ ! -z "${gpu}" ]; then
+ gpu_line="[${gpu}]"
+ fi
+
+ # output until EOF, strip TAB characters
+ tr -d "\t" <<-EOF
+ [${host}]\
+ [${os}]\
+ [${cpu}${cpu_count_notice} @ ${cpu_speed} MHz]\
+ ${gpu_line}\
+ [Memory used: ${mem_used}/${mem_total} MiB]\
+ [Swap used: ${swap_used}/${swap_total} MiB]\
+ [Disk used: ${disk_used}/${disk_size} GiB]\
+ [Load ${cpu_load}]\
+ [Uptime ${uptime}]
+ EOF
+ ;;
+esac