1
0

Update dmidecode2dokuwiki.sh

This commit is contained in:
2026-01-22 11:02:56 +01:00
parent 0ac1a672b9
commit f1f7e3cdb4

View File

@@ -6,11 +6,21 @@ if [[ $EUID -ne 0 ]]; then
exit 1
fi
# Helperfunctie
# ======================
# 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
# ======================
@@ -26,24 +36,48 @@ BIOS_DATE=$(get_dmi_value bios "Release Date")
CPU_MODEL=$(dmidecode -t processor | grep -m1 "Version:" | cut -d: -f2- | xargs)
CPU_SOCKETS=$(dmidecode -t processor | grep "Socket Designation:" | wc -l)
# Geheugen (GB)
MEMORY_MB=$(dmidecode -t memory | grep "Size:" | grep -v "No Module Installed" | awk '{sum += $2} END {print sum}')
MEMORY_GB=$((MEMORY_MB / 1024))
# ======================
# 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 -o NAME,MODEL,SIZE,ROTA,TYPE | grep -E "disk")
DISK_COUNT=$(echo "$DISKS" | wc -l)
DISKS=$(lsblk -d -P -o NAME,MODEL,SIZE,ROTA,TYPE)
DISK_COUNT=$(echo "$DISKS" | grep -c 'TYPE="disk"')
# ======================
# DOKUWIKI OUTPUT
# ======================
cat <<EOF
^ $HOSTNAME ^ ^
| FQDN | $FQDN |
| IP address | $IP_ADDR |
^ Eigenschap ^ Waarde ^
| Hostname | $(hostname -f) |
| ip address | $(ip address|grep "inet "|cut -d " " -f 6|grep -v 127.0) |
| Fabrikant | $MANUFACTURER |
| Productnaam | $PRODUCT_NAME |
| Serienummer | $SERIAL_NUMBER |
@@ -51,31 +85,24 @@ cat <<EOF
| BIOS-datum | $BIOS_DATE |
| CPU-model | $CPU_MODEL |
| CPU-sockets | $CPU_SOCKETS |
| Totaal geheugen | ${MEMORY_GB} GB |
| Totaal geheugen | ${MEMORY_TOTAL_GB} GB |
| Aantal schijven | $DISK_COUNT |
^ Schijf ^ Model ^ Grootte ^ Type ^
EOF
# ======================
# SCHIJFINFORMATIE
# ======================
DISKS=$(lsblk -d -P -o NAME,MODEL,SIZE,ROTA,TYPE)
DISK_COUNT=$(echo "$DISKS" | grep -c 'TYPE="disk"')
while read -r LINE; do
eval "$LINE"
eval "$LINE" # Zet NAME="sda" MODEL="QEMU HARDDISK" SIZE="20G" enz.
[[ "$TYPE" != "disk" ]] && continue
[[ "$TYPE" != "disk" ]] && continue
if [[ "$NAME" == nvme* ]]; then
DISK_TYPE="NVMe"
elif [[ "$ROTA" == "0" ]]; then
DISK_TYPE="SSD"
else
DISK_TYPE="HDD"
fi
if [[ "$NAME" == nvme* ]]; then
DISK_TYPE="NVMe"
elif [[ "$ROTA" == "0" ]]; then
DISK_TYPE="SSD"
else
DISK_TYPE="HDD"
fi
echo "| /dev/$NAME | ${MODEL:-Onbekend} | $SIZE | $DISK_TYPE |"
done <<< "$DISKS"
echo "| /dev/$NAME | ${MODEL:-Onbekend} | $SIZE | $DISK_TYPE |"
done <<< "$DISKS"