#!/bin/bash THRESHOLD="${CPU_THRESHOLD}" INTERVAL="${CHECK_INTERVAL}" TARGET_PREFIX="${CONTAINER_PREFIX}" while true; do docker stats --no-stream --format "{{.Name}} {{.CPUPerc}}" | while read name cpu; do cpu_val=$(echo "$cpu" | tr -d '%') if [[ "$name" == $TARGET_PREFIX* && $(echo "$cpu_val > $THRESHOLD" | bc) -eq 1 ]]; then echo "[watchdog] High CPU: $name using $cpu_val%, restarting..." docker restart "$name" fi done sleep "$INTERVAL" done