summaryrefslogtreecommitdiffstats
path: root/server/ipxe/grepSystemInfo.sh
blob: 386f3b2bdee48b63cae49038ef38cce311a05a5b (plain) (blame)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/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)registrations
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/registration/$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/registration/$UUID/update