Files
bootstrap-scripts/host_profile.sh
2025-07-22 02:01:15 +00:00

58 lines
1.8 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
echo "hostname: $(hostname)"
echo "uptime: $(uptime -p)"
echo "os: $(lsb_release -ds)"
echo "kernel: $(uname -r)"
echo "architecture: $(uname -m)"
# CPU Info
echo "cpu:"
echo " model: $(lscpu | awk -F: '/Model name/ {print $2}' | xargs)"
echo " cores: $(nproc)"
echo " threads: $(lscpu | awk -F: '/^CPU\(s\)/ {print $2}' | xargs)"
# Frequency fallback: lscpu -> /proc/cpuinfo
freq=$(lscpu | awk -F: '/^CPU MHz/ { gsub(/^[ \t]+/, "", $2); printf "%.2f", $2 / 1000 }' 2>/dev/null)
if [[ -z "$freq" ]]; then
freq=$(awk -F: '/cpu MHz/ {print $2; exit}' /proc/cpuinfo | awk '{printf "%.2f", $1 / 1000}')
fi
echo " frequency_ghz: ${freq:-unknown}"
# Memory Info
mem_total=$(free -g | awk '/^Mem:/ {print $2}')
mem_free=$(free -g | awk '/^Mem:/ {print $4}')
if [[ "$mem_total" == "0" ]]; then
mem_total=$(free -m | awk '/^Mem:/ {printf "%.1f", $2 / 1024}')
mem_free=$(free -m | awk '/^Mem:/ {printf "%.1f", $4 / 1024}')
fi
echo "memory_gb:"
echo " total: $mem_total"
echo " free: $mem_free"
# Disk Devices (excluding loop and ram)
echo "disks:"
lsblk -dno NAME,SIZE,MODEL | grep -Ev '^loop|^ram' | while read -r name size model; do
echo " - device: /dev/$name"
echo " size: \"$size\""
echo " model: \"${model:-unknown}\""
done
# Disk usage (real mount size, partition-aware)
echo "disk_usage:"
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT -nr | grep -vE '^loop|^ram' | while read -r name size fstype mount; do
if [ -n "$mount" ]; then
echo " - mount: \"$mount\""
echo " device: \"/dev/$name\""
echo " size: \"$size\""
echo " fstype: \"$fstype\""
fi
done
# Network Interfaces
echo "network_interfaces:"
ip -o -4 addr show | awk '!/ lo / {print " - iface: \"" $2 "\"\n ip: \"" $4 "\"" }'
# Machine ID
echo "machine_id: $(cat /etc/machine-id)"