diff --git a/host_profile.sh b/host_profile.sh index 1d28f20..cc2e9cd 100644 --- a/host_profile.sh +++ b/host_profile.sh @@ -1,8 +1,6 @@ #!/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)" @@ -14,23 +12,29 @@ 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)" +freq=$(lscpu | awk -F: '/^CPU MHz/ { gsub(/^[ \t]+/, "", $2); printf "%.2f", $2 / 1000 }' 2>/dev/null || echo "") +echo " frequency_ghz: ${freq:-unknown}" -# Memory +# 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}" +echo " total: $mem_total" +echo " free: $mem_free" -# Disk +# Disk Devices (excluding loop and ram) echo "disks:" -lsblk -dno NAME,SIZE,MODEL | while read -r name size model; do +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\"" + echo " model: \"${model:-unknown}\"" done +# Disk Usage 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\"" @@ -40,9 +44,9 @@ df -h --output=source,size,used,avail,target -x tmpfs -x devtmpfs | tail -n +2 | echo " available: \"$avail\"" done -# Networking +# Network Interfaces echo "network_interfaces:" ip -o -4 addr show | awk '!/ lo / {print " - iface: \"" $2 "\"\n ip: \"" $4 "\"" }' -# System ID for deduplication +# Machine ID echo "machine_id: $(cat /etc/machine-id)"