42 lines
1.6 KiB
Bash
Executable File
42 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# 26.03.06 :: klevstul
|
|
|
|
|
|
displayResources() {
|
|
operation=$1
|
|
extra_arg=$2
|
|
|
|
if [[ "${operation}" == "memory" ]]; then
|
|
echo /home/poq/.config/nwg-panel/icons/noun-memory-8286943.svg
|
|
free -h | awk '/^Mem:/ {printf "%d/%d gb (%.1f%%)", $3, $2, $3*100/$2}'
|
|
elif [[ "${operation}" == "cpu" ]]; then
|
|
echo /home/poq/.config/nwg-panel/icons/microchip-solid-full.svg
|
|
(grep 'cpu ' /proc/stat; sleep 0.1; grep 'cpu ' /proc/stat) | awk -v RS="" '{printf "%.1f%%", ($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5)"%"}'
|
|
elif [[ "${operation}" == "topmem" ]]; then
|
|
# the process that consumes the most memory
|
|
echo /home/poq/.config/nwg-panel/icons/noun-ram-8252148.svg
|
|
ps -eo pid,%mem,cmd --sort=-%mem | head -n 2 | awk 'NR > 1 {
|
|
pid = $1;
|
|
mem_percent = $2;
|
|
cmd_path = $3;
|
|
gsub(/.*\//, "", cmd_path);
|
|
{printf "%s: %s (%s%)", pid, cmd_path, mem_percent}
|
|
}'
|
|
elif [[ "${operation}" == "topcpu" ]]; then
|
|
# the process that consumes the most cpu
|
|
echo /home/poq/.config/nwg-panel/icons/noun-cpu-8293079.svg
|
|
ps -eo pid,comm,%cpu --sort=-%cpu | head -n 2 | awk 'NR==2 {printf "%s: %s (%s%)", $1, $2, $3}'
|
|
elif [[ "${operation}" == "drive" ]]; then
|
|
# display used drive space
|
|
main_drive=$(df / | awk 'NR==2 {print $1}') # gets the device mounted at /
|
|
extra_arg=${extra_arg:=${main_drive}}
|
|
echo /home/poq/.config/nwg-panel/icons/noun-storage-5078021.svg
|
|
df -h ${extra_arg} | awk 'NR==2 {printf "%s/%s (%s)\n", $3, $2, $5}'
|
|
else
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
displayResources $1 $2
|