#!/bin/bash # http://git.openslx.org/openslx-ng/mltk.git/tree/core/modules/hardware-stats/data/opt/openslx/scripts/systemd-hardware_stats #dmidecode | grep -i UUID # MAC # MAC=$(ip addr show | grep -Eo -m 1 'ether\s.*\sbrd') # MAC=${MAC#"ether "} # MAC=${MAC%" brd"} # UUID UUID=$(dmidecode -q -s system-uuid | grep -v '^#' | head -n 1 | tr '[a-z]' '[A-Z]') # System MANUFACTURER=$(dmidecode -q -s system-manufacturer) MODEL=$(dmidecode -q -s system-product-name) SERIAL=$(dmidecode -q -s system-serial-number) VENDOR=$(dmidecode | grep -Eo '(Vendor).*') VENDOR=${VENDOR#"Vendor: "} # Mainboard MAINBOARD_MANUFACTURER=$(dmidecode -q -s baseboard-manufacturer) MAINBOARD_MODEL=$(dmidecode -q -s baseboard-product-name) MAINBOARD_SERIAL_NUMBER=$(dmidecode -q -s baseboard-serial-number) # CPU CPU_MODEL=$(dmidecode -q -s processor-version) CPU_MANUFACTURER=$(dmidecode -q -s processor-manufacturer) CPU_TYPE=$(dmidecode -q -s processor-family) CPU_CORES=$(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | sort -u | wc -l) #CPUMODEL=$(grep -m1 '^model name\s*:' /proc/cpuinfo | sed 's/^model name\s*:\s*//;s/\s\s*/ /g;s/^ //;s/ $//') #echo "$CPUMODEL" CPU_FREQUENCY=$(dmidecode -q -s processor-frequency) CPU_FREQUENCY=${CPU_FREQUENCY%" MHz"} # RAM # RAM=$(grep -m1 '^MemTotal:' /proc/meminfo | awk '{print $2}') # RAM=$(( $RAM / 1024 )) # if [ -z "$RAM" ] || [ "$RAM" -lt 500 ]; then # # Fallback to dmidecode # RAM=0 # for c in $(dmidecode -t 17 | grep -o 'Size:.*MB$' | awk '{print $2}'); do # RAM=$(( $RAM + $c )) # done # fi # RAM_SIZE=$(dmidecode -t 17 | grep -o 'Size:.*[MG]B$') RAM_SIZE=$(dmidecode -t 17 | grep -o 'Size:.*') RAM_MANUFACTURER=$(dmidecode -t 17 | grep -o 'Manufacturer:.*') #RAM_MANUFACTURER=${RAM_MANUFACTURER#"\tManufacturer: "} RAM_TYPE=$(dmidecode -t 17 | grep -o 'Type:.*') RAM_ISECC=$(dmidecode -t 16 | grep -o 'Error Correction Type:.*') RAM_FORMFACTOR=$(dmidecode -t 17 | grep -o 'Form Factor:.*') #RAM_TYPE=${RAM_TYPE#"\tType: "} # HDD / SSD # hd parm or smartctl from smartmontools drives=$(ls /dev/sd* | grep -o '/dev/sd.$') for drive in $drives; do # drivedata=$(sudo smartctl -i $drive) # drivedata=$(sudo hdparm -I $drive) # echo $drivedata | grep -o 'Device Model: .*' done # Curl #curl --data "state=6" --insecure https://bas.stfu-kthx.net:8888/api/registrations/$UUID/state curl -d "name=Client_$UUID&sys_manufacturer=$MANUFACTURER&sys_model=$MODEL&sys_serial=$SERIAL&cpu_model=$CPU_MODEL&cpu_manufacturer=$CPU_MANUFACTURER&cpu_type=$CPU_TYPE&cpu_cores=$CPU_CORES&cpu_frequency=$CPU_FREQUENCY&ram_size=$RAM_SIZE&ram_manufacturer=$RAM_MANUFACTURER&ram_type=$RAM_TYPE&ram_isecc=$RAM_ISECC&ram_formfactor=$RAM_FORMFACTOR" -H "Content-Type: application/x-www-form-urlencoded" -X POST --insecure https://bas.intra.uni-freiburg.de/api/registrations/$UUID/update