53 lines
1.6 KiB
Bash
53 lines
1.6 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)"
|
|
freq=$(lscpu | awk -F: '/^CPU MHz/ { gsub(/^[ \t]+/, "", $2); printf "%.2f", $2 / 1000 }' 2>/dev/null || echo "")
|
|
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
|
|
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
|
|
|
|
# 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)"
|