#!/bin/bash SERVER="10.0.0.15" SSH_TARGET="root@$SERVER" if ping -c 1 -W 1 "$SERVER" >/dev/null 2>&1; then STATS=$(ssh -o ConnectTimeout=2 -o BatchMode=yes "$SSH_TARGET" ' CPU=$(top -bn1 | grep "Cpu(s)" | awk "{print int(\$2+\$4)}") RAM=$(free | awk "/Mem:/ {printf \"%.0f\", (\$3/\$2)*100}") DISK=$(df / | awk "NR==2 {gsub(\"%\",\"\",\$5); print \$5}") LOAD=$(cut -d " " -f1 /proc/loadavg) UPTIME=$(uptime -p | sed "s/up //") TEMP=$(cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null | awk "{printf \"%.0f\", \$1/1000}") DOCKER=$(docker ps -q 2>/dev/null | wc -l) printf "CPU: %3s%%\nRAM: %3s%%\nDisk: %3s%%\nLoad: %s\nUp: %s\nTemp: %s°C\nDocker: %s running" \ "$CPU" "$RAM" "$DISK" "$LOAD" "$UPTIME" "$TEMP" "$DOCKER" ' 2>/dev/null) if [ -n "$STATS" ]; then TEXT="󰒋" CLASS="online" TOOLTIP=$(printf "PDEV Server (%s)\n\n%s" "$SERVER" "$STATS") else TEXT="󰒋" CLASS="warning" TOOLTIP=$(printf "Server erreichbar\nSSH Verbindung fehlgeschlagen") fi else TEXT="󰒋" CLASS="offline" TOOLTIP="Server offline" fi jq -cn \ --arg text "$TEXT" \ --arg tooltip "$TOOLTIP" \ --arg class "$CLASS" \ '{text:$text, tooltip:$tooltip, class:$class}'