From 1b11f0eab4c2cdcd04ee603f78bc87268c330738 Mon Sep 17 00:00:00 2001 From: Ryan Hamilton Date: Tue, 22 Jul 2025 01:39:28 +0000 Subject: [PATCH] Add host_profile.sh --- host_profile.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 host_profile.sh diff --git a/host_profile.sh b/host_profile.sh new file mode 100644 index 0000000..1d28f20 --- /dev/null +++ b/host_profile.sh @@ -0,0 +1,48 @@ +#!/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)"