Files
bootstrap-scripts/host_profile.sh
2025-07-22 01:39:28 +00:00

49 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# Output format: YAML for easy parsing
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)"
echo " frequency_ghz: $(lscpu | awk -F: '/MHz/ {printf \"%.2f\", $2 / 1000}' | xargs)"
# Memory
mem_total=$(free -g | awk '/^Mem:/ {print $2}')
mem_free=$(free -g | awk '/^Mem:/ {print $4}')
echo "memory_gb:"
echo " total: ${mem_total}"
echo " free: ${mem_free}"
# Disk
echo "disks:"
lsblk -dno NAME,SIZE,MODEL | while read -r name size model; do
echo " - device: /dev/$name"
echo " size: \"$size\""
echo " model: \"$model\""
done
echo "disk_usage:"
df -h --output=source,size,used,avail,target -x tmpfs -x devtmpfs | tail -n +2 | while read -r src size used avail target; do
echo " - mount: \"$target\""
echo " device: \"$src\""
echo " size: \"$size\""
echo " used: \"$used\""
echo " available: \"$avail\""
done
# Networking
echo "network_interfaces:"
ip -o -4 addr show | awk '!/ lo / {print " - iface: \"" $2 "\"\n ip: \"" $4 "\"" }'
# System ID for deduplication
echo "machine_id: $(cat /etc/machine-id)"