#!/bin/bash # Vereist root if [[ $EUID -ne 0 ]]; then echo "Dit script moet als root worden uitgevoerd." exit 1 fi # ====================== # Helperfunctie voor dmidecode # ====================== get_dmi_value() { dmidecode -t "$1" | grep -m1 "$2" | cut -d: -f2- | xargs } # ====================== # Hostinformatie # ====================== HOSTNAME=$(hostname) FQDN=$(hostname -f) # Pak alle niet-loopback IPv4 adressen IP_ADDR=$(ip address | grep "inet " | awk '{print $2}' | grep -v "^127" | paste -sd ", " -) # ====================== # SYSTEEMINFORMATIE # ====================== MANUFACTURER=$(get_dmi_value system "Manufacturer") PRODUCT_NAME=$(get_dmi_value system "Product Name") SERIAL_NUMBER=$(get_dmi_value system "Serial Number") # BIOS BIOS_VERSION=$(get_dmi_value bios "Version") BIOS_DATE=$(get_dmi_value bios "Release Date") # CPU CPU_MODEL=$(dmidecode -t processor | grep -m1 "Version:" | cut -d: -f2- | xargs) CPU_SOCKETS=$(dmidecode -t processor | grep "Socket Designation:" | wc -l) # ====================== # GEHEUGEN # ====================== MEMORY_TOTAL_GB=0 while read -r SIZE_LINE; do SIZE_LINE=$(echo "$SIZE_LINE" | xargs) [[ "$SIZE_LINE" == "No Module Installed" ]] && continue SIZE_VALUE=$(echo "$SIZE_LINE" | awk '{print $1}') SIZE_UNIT=$(echo "$SIZE_LINE" | awk '{print $2}') case "$SIZE_UNIT" in MB|M) GB=$(( SIZE_VALUE / 1024 )) ;; GB|G) GB=$(( SIZE_VALUE )) ;; *) GB=0 ;; esac MEMORY_TOTAL_GB=$(( MEMORY_TOTAL_GB + GB )) done < <(dmidecode -t memory | grep "Size:" | awk -F: '{print $2}') # ====================== # SCHIJFINFORMATIE # ====================== DISKS=$(lsblk -d -P -o NAME,MODEL,SIZE,ROTA,TYPE) DISK_COUNT=$(echo "$DISKS" | grep -c 'TYPE="disk"') # ====================== # DOKUWIKI OUTPUT # ====================== cat <