Bash/collect_vm_info.sh

32 lines
942 B
Bash

#!/bin/bash
# collect_vm_info.sh
# Dieses Skript sammelt VM-Infos und speichert sie als CSV in /home/
# Datum & Zeit
DATE=$(date +"%Y-%m-%d.%H-%M-%S")
# Hostname
HOSTNAME=$(hostname)
# CPU & Core Infos
CPU_COUNT=$(lscpu | awk '/^Socket\(s\):/{s=$2} /^Core\(s\) per socket:/{c=$4} /^Thread\(s\) per core:/{t=$4} END{print s*c*t}')
CORE_COUNT=$(lscpu | awk '/^Core\(s\) per socket:/{print $4}')
# RAM in MB
RAM_MB=$(free -m | awk '/Mem:/{print $2}')
# MAC-Adressen (nur aktive Interfaces)
MACS=$(ip link show | awk '/link\/ether/ {print $2}' | paste -sd'|' -)
# CSV-Dateiname
CSV_FILE="/home/${HOSTNAME}.${DATE}.csv"
# Header + Werte schreiben
echo "hostname,cpu_count,core_count,ram_mb,mac_addresses" > "$CSV_FILE"
echo "${HOSTNAME},${CPU_COUNT},${CORE_COUNT},${RAM_MB},${MACS}" >> "$CSV_FILE"
# Berechtigungen anpassen (für Nicht-Root lesbar)
chmod 644 "$CSV_FILE"
echo "✅ Systeminformationen wurden gespeichert unter: $CSV_FILE"