You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
#!/bin/bash
|
|
set -euo pipefail
|
|
SCRIPTNAME=$(basename "$(readlink -f "$0")")
|
|
|
|
# ========= Configuration =========
|
|
CONTAINER_NAME="paperless-ai"
|
|
OLLAMA_HOST="192.168.222.12"
|
|
OLLAMA_PORT="11434"
|
|
ERROR_PATTERN="Error: \[ERROR\] Document analysis failed: connect EHOSTUNREACH $OLLAMA_HOST:$OLLAMA_PORT"
|
|
|
|
|
|
# Tools (adjust if your distro uses different names)
|
|
WOL_CMD="wakeonlan" # or "etherwake -i eth0 $WOL_MAC"
|
|
NC_CMD="nc" # netcat
|
|
DOCKER="docker"
|
|
|
|
# Ensure only one instance of this script is running
|
|
if pgrep -f $SCRIPTNAME 1>/dev/null; then
|
|
echo "Killing running instance of $SCRIPTNAME..."
|
|
pgrep -f -- "$SCRIPTNAME" | grep -vw "$$" | xargs -r kill -KILL
|
|
fi
|
|
|
|
log() { printf '[%(%F %T)T] %s\n' -1 "$*"; }
|
|
|
|
${DOCKER} logs -f --since 0s "${CONTAINER_NAME}" 2>&1 | \
|
|
while IFS= read -r line; do
|
|
# Print lines optionally for debugging:
|
|
#echo "$line"
|
|
|
|
if echo "$line" | grep -qE "${ERROR_PATTERN}"; then
|
|
log "Detected EHOSTUNREACH for Ollama (${OLLAMA_HOST}:${OLLAMA_PORT})."
|
|
fi
|
|
|
|
done
|
|
|