ソースを参照

modify snapraid-diff-n-sync script to push to ntfy

Blaine Story 2 年 前
コミット
1a8f7dd530
1 ファイル変更62 行追加26 行削除
  1. 62 26
      roles/snapraid/templates/snapraid-diff-n-sync.sh.j2

+ 62 - 26
roles/snapraid/templates/snapraid-diff-n-sync.sh.j2

@@ -99,7 +99,7 @@ MAIL_BIN="/usr/bin/mail"
 TERSE=2
  
 ## INTERNAL TEMP VARS ##
-EMAIL_SUBJECT_PREFIX="[`hostname`] SnapRAID - "
+EMAIL_SUBJECT_PREFIX="[`hostname`] SnapRAID -"
 TMP_OUTPUT="/tmp/snapRAID.out"
 SYNC_WARN_FILE="/tmp/snapRAID.warnCount"
 SYNC_WARN_COUNT=""
@@ -154,7 +154,15 @@ if [ -z "$DEL_COUNT" -o -z "$ADD_COUNT" -o -z "$MOVE_COUNT" -o -z "$COPY_COUNT"
   # failed to get one or more of the count values, lets report to user and exit with error code
   echo "[`date`] ERROR - failed to get one or more count values. Unable to proceed. Exiting script."
   if [ $EMAIL_ADDRESS ]; then
-    $MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING - Unable to proceed with SYNC/SCRUB job(s). Check DIFF job output inside." "$EMAIL_ADDRESS" < $TMP_OUTPUT
+#    $MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING - Unable to proceed with SYNC/SCRUB job(s). Check DIFF job output inside." "$EMAIL_ADDRESS" < $TMP_OUTPUT
+    curl \
+      -H "Title: $EMAIL_SUBJECT_PREFIX WARNING" \
+      -H "Priority: urgent" \
+      -H "Tags: warning" \
+      -d "Unable to proceed with SYNC/SCRUB job(s). Check DIFF job output inside
+
+$(cat $TMP_OUTPUT)" \
+      https://ntfy.warchildstory.com/{{ server_notifications_topic }}
   fi
   exit 1;
 fi
@@ -270,31 +278,59 @@ fi
 #echo "Spinning down disks..." >> $TMP_OUTPUT
 #$SNAPRAID_BIN down
  
-# all jobs done, let's send output to user if configured
-if [ $EMAIL_ADDRESS ]; then
-  echo "[`date`] Email address is set. Sending email report to <$EMAIL_ADDRESS>"
-  # check if deleted count exceeded threshold
-  if [ $DEL_COUNT -gt $DEL_THRESHOLD -a $DO_SYNC -eq 0 ]; then
-    # YES, lets inform user with an appropriate subject line
-    $MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING $SYNC_WARN_COUNT - Number of deleted files ($DEL_COUNT) exceeded threshold ($DEL_THRESHOLD)" "$EMAIL_ADDRESS" < $TMP_OUTPUT
-  elif [ -z "${JOBS_DONE##*"SYNC"*}" -a -z "$(grep -w "SYNC_JOB-" $TMP_OUTPUT)" ]; then
-    # Sync ran but did not complete successfully so lets warn the user
-    $MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING - SYNC job ran but did not complete successfully" "$EMAIL_ADDRESS" < $TMP_OUTPUT
-  elif [ -z "${JOBS_DONE##*"SCRUB"*}" -a -z "$(grep -w "SCRUB_JOB-" $TMP_OUTPUT)" ]; then
-    # Scrub ran but did not complete successfully so lets warn the user
-    $MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING - SCRUB job ran but did not complete successfully" "$EMAIL_ADDRESS" < $TMP_OUTPUT
-  else
-    # OPTIONALLY, let's reduce the amount of status lines in output.
-    if [ $TERSE -gt 1 ]; then
-      # Report progress in interval of tens %
-      sed -i '$!N; /^\([0-9]\).*\n\1.*$/!P; D'  $TMP_OUTPUT
-      sed -i '/^[1-8]%.*$/d'  $TMP_OUTPUT
-    elif [ $TERSE -gt 0 ]; then
-      # Report progress in interval of ones %
-      sed -i '$!N; /^\([0-9]*\)%.*\n\1.*$/!P; D'  $TMP_OUTPUT
-    fi
-    $MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX INFO - $JOBS_DONE Jobs COMPLETED" "$EMAIL_ADDRESS" < $TMP_OUTPUT
+# check if deleted count exceeded threshold
+if [ $DEL_COUNT -gt $DEL_THRESHOLD -a $DO_SYNC -eq 0 ]; then
+  # YES, lets inform user with an appropriate subject line
+  #$MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING $SYNC_WARN_COUNT - Number of deleted files ($DEL_COUNT) exceeded threshold ($DEL_THRESHOLD)" "$EMAIL_ADDRESS" < $TMP_OUTPUT
+    curl \
+      -H "Title: $EMAIL_SUBJECT_PREFIX WARNING" \
+      -H "Priority: urgent" \
+      -H "Tags: warning" \
+      -d "$SYNC_WARN_COUNT - Number of deleted files ($DEL_COUNT) exceeded threshold ($DEL_THRESHOLD)
+
+$(cat $TMP_OUTPUT)" \
+      https://ntfy.warchildstory.com/{{ server_notifications_topic }}
+elif [ -z "${JOBS_DONE##*"SYNC"*}" -a -z "$(grep -w "SYNC_JOB-" $TMP_OUTPUT)" ]; then
+  # Sync ran but did not complete successfully so lets warn the user
+  #$MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING - SYNC job ran but did not complete successfully" "$EMAIL_ADDRESS" < $TMP_OUTPUT
+    curl \
+      -H "Title: $EMAIL_SUBJECT_PREFIX WARNING" \
+      -H "Priority: urgent" \
+      -H "Tags: warning" \
+      -d "SYNC job ran but did not complete successfully
+
+$(cat $TMP_OUTPUT)" \
+      https://ntfy.warchildstory.com/{{ server_notifications_topic }}
+elif [ -z "${JOBS_DONE##*"SCRUB"*}" -a -z "$(grep -w "SCRUB_JOB-" $TMP_OUTPUT)" ]; then
+  # Scrub ran but did not complete successfully so lets warn the user
+  #$MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX WARNING - SCRUB job ran but did not complete successfully" "$EMAIL_ADDRESS" < $TMP_OUTPUT
+    curl \
+      -H "Title: $EMAIL_SUBJECT_PREFIX WARNING" \
+      -H "Priority: urgent" \
+      -H "Tags: warning" \
+      -d "SCRUB job ran but did not complete successfully
+
+$(cat $TMP_OUTPUT)" \
+      https://ntfy.warchildstory.com/{{ server_notifications_topic }}
+else
+  # OPTIONALLY, let's reduce the amount of status lines in output.
+  if [ $TERSE -gt 1 ]; then
+    # Report progress in interval of tens %
+    sed -i '$!N; /^\([0-9]\).*\n\1.*$/!P; D'  $TMP_OUTPUT
+    sed -i '/^[1-8]%.*$/d'  $TMP_OUTPUT
+  elif [ $TERSE -gt 0 ]; then
+    # Report progress in interval of ones %
+    sed -i '$!N; /^\([0-9]*\)%.*\n\1.*$/!P; D'  $TMP_OUTPUT
   fi
+  #$MAIL_BIN -s "$EMAIL_SUBJECT_PREFIX INFO - $JOBS_DONE Jobs COMPLETED" "$EMAIL_ADDRESS" < $TMP_OUTPUT
+    curl \
+      -H "Title: $EMAIL_SUBJECT_PREFIX INFO" \
+      -H "Priority: default" \
+      -H "Tags: white_check_mark" \
+      -d "$JOBS_DONE Jobs COMPLETED
+
+$(cat $TMP_OUTPUT)" \
+      https://ntfy.warchildstory.com/{{ server_notifications_topic }}
 fi
  
 echo "[`date`] All jobs ended."