Просмотр исходного кода

More detailed error messages. Mail on error.

Zachary Kotlarek 14 лет назад
Родитель
Сommit
ffeda52f31
1 измененных файлов с 11 добавлено и 5 удалено
  1. 11 5
      pms/PMSCheck.sh

+ 11 - 5
pms/PMSCheck.sh

@@ -4,6 +4,7 @@
 CURL_TIMEOUT=2
 DATE_TIMEOUT=360
 PMS_URL="http://localhost:32400/"
+ADMIN_EMAIL="zach@kotlarek.com"
 
 # Command-line config
 LOOP=-1
@@ -14,7 +15,7 @@ fi
 # Run at least once, loop if requested
 while [ $LOOP -ne 0 ]; do
 	# State tracking
-	FAILED=1
+	FAILED=""
 
 	# Ask for the last update time from Plex
 	UPDATE="`curl --silent --max-time "${CURL_TIMEOUT}" "${PMS_URL}" | \
@@ -24,17 +25,22 @@ while [ $LOOP -ne 0 ]; do
 	if [ -n "${UPDATE}" ]; then
 		DATE="`date '+%s'`"
 		DIFF=$(( $DATE - $UPDATE ));
-		if [ $DIFF -le $DATE_TIMEOUT ]; then
-			FAILED=0
+		if [ $DIFF -gt $DATE_TIMEOUT ]; then
+			FAILED="Update timeout"
 		fi
+	else
+		FAILED="HTTP timeout"
 	fi
 
 	# If Plex has failed kill it
-	if [ $FAILED -gt 0 ]; then
-		echo "PMS is non-responsive. Killing..." 1>&2
+	if [ -n "${FAILED}" ]; then
+		ERR_MSG="PMS is non-responsive (${FAILED}). Killing..."
 		killall 'Plex Media Server'
 		if [ $LOOP -lt 1 ]; then
+			echo "${ERR_MSG}" 1>&2
 			exit 1
+		elif [ -n "${ADMIN_EMAIL}" ]; then
+			echo "${ERR_MSG}" | sendmail "${ADMIN_EMAIL}"
 		fi
 	fi