#!/usr/bin/env bash get_cpu_model() { awk -F: ' $1 ~ /^model name[[:space:]]*$/ { value = $2 sub(/^[[:space:]]*/, "", value) print value exit } ' /proc/cpuinfo } get_cpu_count() { getconf _NPROCESSORS_ONLN } get_memory_bytes() { awk ' $1 == "MemTotal:" { print $2 * 1024 exit } ' /proc/meminfo } # Live gefunden (01.09.2026, echter Hardware-Test): auf einem echten # USB-Stick enumeriert das Boot-Medium selbst als normales "disk"- # Blockgeraet (siehe tuxflotte_boot_medium_disk() in boot_medium.sh) - ohne # Ausschluss tauchte der Installations-Stick selbst in der an den Server # gemeldeten Datentraeger-Liste auf und war dort fuer den Kunden # irrefuehrend sichtbar (Hardware-Info in der Kundenplattform). build_storage_devices_json() { local boot_medium_disk boot_medium_name boot_medium_disk="$(tuxflotte_boot_medium_disk 2>/dev/null || true)" boot_medium_name="${boot_medium_disk#/dev/}" lsblk \ --bytes \ --json \ --nodeps \ --output NAME,TYPE,MODEL,SERIAL,SIZE,TRAN | jq --arg exclude "${boot_medium_name}" ' [ .blockdevices[] | select(.type == "disk") | select($exclude == "" or .name != $exclude) | { name: .name, model: ( if .model == null or .model == "" then null else (.model | gsub("^[[:space:]]+|[[:space:]]+$"; "")) end ), serial: ( if .serial == null or .serial == "" then null else (.serial | gsub("^[[:space:]]+|[[:space:]]+$"; "")) end ), size_bytes: .size, transport: ( if .tran == null or .tran == "" then null else .tran end ) } ] ' }