forked from slint-ui/slint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sysinfo_linux.sh
executable file
·36 lines (33 loc) · 1.46 KB
/
sysinfo_linux.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash -e
# Copyright © SixtyFPS GmbH <[email protected]>
# SPDX-License-Identifier: MIT
if command lsb_release 2>/dev/null >/dev/null; then
os_name=`lsb_release -ds | tr -d '"\\\\'`
else
os_name="(unable to determine Linux distribution)"
fi
uptime=`uptime -p | cut -d " " -f2-` | tr -d '"\\\\'
cpu_count=`grep processor /proc/cpuinfo | wc -l`
cpu_vendor=`awk -F ": " '/vendor_id/{ print $2; exit}' < /proc/cpuinfo | tr -d '"\\\\'`
cpu_model=`awk -F ": " '/model name/{ print $2; exit}' < /proc/cpuinfo | tr -d '"\\\\'`
mem_size_kb=`sed -n -e "s,MemTotal:\s\+\(.*\)\s\+.\+,\1,p"< /proc/meminfo`
partitions=`df -T --block-size=1 | tail -n+2 | awk 'NR > 1 { printf(", ") } {printf "{ \"dev\": \"%s\", \"mnt\": \"%s\", \"total\": %s, \"free\": %s }", $1,$7, $3, $5}'`
buffer_mem_size_kb=`sed -n -e "s,Buffers:\s\+\(.*\)\s\+.\+,\1,p"< /proc/meminfo`
swap_total_kb=`sed -n -e "s,SwapTotal:\s\+\(.*\)\s\+.\+,\1,p"< /proc/meminfo`
swap_free_kb=`sed -n -e "s,SwapFree:\s\+\(.*\)\s\+.\+,\1,p"< /proc/meminfo`
swap_used_kb=$((swap_total_kb - swap_free_kb))
slint-viewer `dirname $0`/sysinfo.slint --load-data - <<EOT
{
"os_name": "$os_name",
"uptime": "$uptime",
"cpu_count": "$cpu_count",
"cpu_vendor": "$cpu_vendor",
"cpu_model": "$cpu_model",
"mem_size_kb": $mem_size_kb,
"buffer_mem_size_kb": $buffer_mem_size_kb,
"swap_total_kb": $swap_total_kb,
"swap_used_kb": $swap_used_kb,
"swap_free_kb": $swap_free_kb,
"partitions": [ $partitions ]
}
EOT