#!/bin/bash # Writes /var/lib/furtka/status.json with current system stats. Fired by # furtka-status.timer every 30s; also runs once 10s after boot. Path is under # /var/lib/ so self-updates (which swap /opt/furtka/current) don't clobber it. set -e out=/var/lib/furtka/status.json tmp=$(mktemp) mkdir -p /var/lib/furtka hostname=$(cat /etc/hostname) uptime=$(uptime -p 2>/dev/null | sed 's/^up //' || echo unknown) if command -v docker >/dev/null 2>&1; then docker_version=$(docker --version 2>/dev/null | awk '{print $3}' | tr -d ',' || echo unavailable) else docker_version=unavailable fi disk_free=$(df -h / 2>/dev/null | awk 'NR==2 {print $4 " free of " $2}' || echo unknown) ip_primary=$(ip -4 -o addr show scope global 2>/dev/null | awk '{print $4}' | cut -d/ -f1 | head -1 || true) kernel=$(uname -r 2>/dev/null || echo unknown) ram_total=$(free -h --si 2>/dev/null | awk '/^Mem:/ {print $2}' || echo unknown) furtka_version=$(cat /opt/furtka/current/VERSION 2>/dev/null || echo dev) updated_at=$(date -Iseconds) cat > "$tmp" <