diff --git a/monitoring/sleepy.sh b/monitoring/sleepy.sh new file mode 100644 index 0000000..2bf0128 --- /dev/null +++ b/monitoring/sleepy.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# When the bot gets eepy sleepy, this script will restart it. It happens, when no jobs come in for multiple minutes. +# The script interfaces with the REST API of the bot and checks if the image count has changed. +# Run this script as cronjob all 4-5 minutes. + +# Define the URL and the stats file path +URL="https://YOUR_URL/api/stats" +STATS_FILE="YOUR_FILE_PATH/stats.txt" + +# Fetch the data and extract imageCount +imageCount=$(curl -s "$URL" | jq '.imageCount') + +# Check if stats file exists and read the last value +if [ -f "$STATS_FILE" ]; then + lastValue=$(tail -n 1 "$STATS_FILE") +else + lastValue="" +fi + +# Save the new value to the file +echo "$imageCount" >> "$STATS_FILE" + +# Keep only the last 2 values in the file +tail -n 2 "$STATS_FILE" > "$STATS_FILE.tmp" && mv "$STATS_FILE.tmp" "$STATS_FILE" + +# Compare the two values and restart the service if they are the same +if [ "$lastValue" == "$imageCount" ]; then + systemctl restart nyxthebot +fi