Add dmidecode2dokuwiki.sh
This commit is contained in:
81
dmidecode2dokuwiki.sh
Normal file
81
dmidecode2dokuwiki.sh
Normal file
@@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Vereist root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "Dit script moet als root worden uitgevoerd."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Helperfunctie
|
||||
get_dmi_value() {
|
||||
dmidecode -t "$1" | grep -m1 "$2" | cut -d: -f2- | xargs
|
||||
}
|
||||
|
||||
# ======================
|
||||
# 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 (GB)
|
||||
MEMORY_MB=$(dmidecode -t memory | grep "Size:" | grep -v "No Module Installed" | awk '{sum += $2} END {print sum}')
|
||||
MEMORY_GB=$((MEMORY_MB / 1024))
|
||||
|
||||
# ======================
|
||||
# SCHIJFINFORMATIE
|
||||
# ======================
|
||||
DISKS=$(lsblk -d -o NAME,MODEL,SIZE,ROTA,TYPE | grep -E "disk")
|
||||
|
||||
DISK_COUNT=$(echo "$DISKS" | wc -l)
|
||||
|
||||
# ======================
|
||||
# DOKUWIKI OUTPUT
|
||||
# ======================
|
||||
cat <<EOF
|
||||
^ 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 |
|
||||
| BIOS-versie | $BIOS_VERSION |
|
||||
| BIOS-datum | $BIOS_DATE |
|
||||
| CPU-model | $CPU_MODEL |
|
||||
| CPU-sockets | $CPU_SOCKETS |
|
||||
| Totaal geheugen | ${MEMORY_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"
|
||||
|
||||
[[ "$TYPE" != "disk" ]] && continue
|
||||
|
||||
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"
|
||||
Reference in New Issue
Block a user