Informacje o serwerze w bash'u, output do JSON

0

Hej, mam taki kod w Bashu, niestety nauczyciel mi napisał...

informacji o miejscu na poszczególnych partycjach brak, o strukturze o jaką prosiłem nie wspominając

Jak mogę go poprawić?

#/bin/bash
CPU_LOAD=$(uptime | awk -F'load average:' '{ print $2 }');
MEMORY_RAM_USED=$(free | awk '/^Mem:/{print $3}');
MEMORY_SWAP_TOTAL=$(free | awk '/^Swap:/{print $2}');
MEMORY_RAM_TOTAL=$(free | awk '/^Mem:/{print $2}');
MEMORY_SWAP_USED=$(free | awk '/^Swap:/{print $3}');
HDD_TOTAL=$(df | grep '/$' | awk '{print $2}');
HDD_USED=$(df | grep '/$' | awk '{print $3}');
GIT_MODIFIED_COUNT=0;
IP_ADDRESS=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | awk '{print $0}');
NAME_DISTRO=$(uname -mrs | awk '{print $0}');
EACH_DEV_AVAILABLE=$(df -l | grep '/dev/' | awk '{print $4}');
EACH_DEV_USED=$(df -l | grep '/dev/' | awk '{print $3}');
HOME_AVAILABLE=$(df -l | grep '/home' | awk '{print $4}');
HOME_USED=$(df -l | grep '/home' | awk '{print $3}');
UDEV_AVAILABLE=$(df -l | grep 'udev' | awk '{print $4}');
UDEV_USED=$(df -l | grep 'udev' | awk '{print $3}');
echo -ne "{
\"hostname\": \"${HOSTNAME}\",
\"cpu_load\": \"${CPU_LOAD}\",
\"memory_ram_total\": \"${MEMORY_RAM_TOTAL}\",
\"memory_ram_used\": \"${MEMORY_RAM_USED}\",
\"memory_swap_total\": \"${MEMORY_SWAP_TOTAL}\",
\"memory_swap_used\": \"${MEMORY_SWAP_USED}\",
\"hdd_total\": \"${HDD_TOTAL}\",
\"hdd_used\": \"${HDD_USED}\",
\"ip_address\": \"${IP_ADDRESS}\",
\"name_distro\": \"${NAME_DISTRO}\",
\"each_dev_available\": \"${EACH_DEV_AVAILABLE}\",
\"each_dev_used\": \"${EACH_DEV_USED}\",
\"home_available\": \"${HOME_AVAILABLE}\",
\"home_used\": \"${HOME_USED}\",
\"udev_used\": \"${UDEV_USED}\",
\"udev_available\": \"${UDEV_AVAILABLE}\",
}"
1

Informacje o partycjach to df. A jeśli chodzi o struktury dla pana profesora to bez kryształowej kuli się nie obędzie ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1