howtos:pushover_script_for_notifications
Table of Contents
Intro
I made this script because I needed to know immediately when my mailcow server rebooted/crashed, as it requires manual actions to get started.
As mailcow itself makes it easy to use Pushover I thought why not use that as well as it works great.
So, here is a simple bash script you can run by itself or insert it into crontab.
crontab example
@reboot root bash /usr/local/bin/pushover.sh "System start up: $(hostname -f)" "$(hostname -f) rebooted!" 2
The script takes three parameters, message, title, and priority. I use priority 2 (emergency) as it will keep nagging me until I react.
pushover.sh
#!/bin/bash if [ $# -eq 0 ]; then echo "Usage: ./pushover <message> [title] [priority]" exit fi MESSAGE=$1 TITLE=$2 PRIORITY=${3:-0} # if you don't supply a priority it defaults to 0 if [ $# -lt 2 ]; then TITLE="`whoami`@${HOSTNAME}" fi APP_TOKEN="XXXX" USER_TOKEN="YYYYY" BASE_URL="https://api.pushover.net/1/messages.json" POST_DATA="token=$APP_TOKEN&user=$USER_TOKEN&message=$MESSAGE&title=$TITLE&priority=$PRIORITY" # Check if $3 is set to 2 and append retry and expire parameters to POST_DATA if [ "$PRIORITY" -eq 2 ]; then POST_DATA="$POST_DATA&retry=60&expire=3600" # Just an example, you can set the values of retry and expire as per your needs fi curl -s -X POST -d "$POST_DATA" $BASE_URL > /dev/null 2>&1 &
howtos/pushover_script_for_notifications.txt · Last modified: 18/08/2023 20:09 by domingo