107 lines
2.7 KiB
Bash
107 lines
2.7 KiB
Bash
#!/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 <<EOF
|
|
^ $HOSTNAME ^ ^
|
|
| FQDN | $FQDN |
|
|
| IP address | $IP_ADDR |
|
|
| 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_TOTAL_GB} GB |
|
|
| Aantal schijven | $DISK_COUNT |
|
|
|
|
^ Schijf ^ Model ^ Grootte ^ Type ^
|
|
EOF
|
|
|
|
while read -r LINE; do
|
|
eval "$LINE" # Zet NAME="sda" MODEL="QEMU HARDDISK" SIZE="20G" enz.
|
|
|
|
[[ "$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"
|