Una delle attività essenziali per gli sviluppatori e l’amministratore di sistema è ricevere una notifica di avviso sui servizi non riusciti o l’esaurimento dello spazio su disco e altri errori critici. Vediamo come inviare o inviare un messaggio diretto a un dispositivo mobile alimentato da un telefono Apple iOS o Google Android.
Come inviare / inviare messaggi a iOS e Android in tempo reale
Possiamo utilizzare il servizio di notifica push AWS SNS per inviare un avviso direttamente a un’applicazione su un dispositivo mobile. Tuttavia, oggi userò il servizio app semplice chiamato Pushover. È una semplice app per ricevere notifiche in tempo reale su Android, iPhone, iPad e desktop, inclusi Android Wear e Apple Watch.
Perché inviare notifiche?
In qualità di sviluppatore indipendente e amministratore di sistema Linux, avevo bisogno di un modo semplice per ricevere una notifica per i miei progetti collaterali utilizzando l’API. Posso ricevere una notifica per backup non riusciti o il mio servizio Nginx è sovraccarico a causa di problemi o replica di sola lettura MySQL che non è sincronizzata. La mia ricerca si è conclusa con Pushover. Tuttavia, non è un servizio gratuito. Per utilizzare Pushover per te o un piccolo gruppo, è solo un acquisto una tantum di $ 5 su ciascuna piattaforma. Puoi inviare 7.500 messaggi al mese, che è più che sufficiente per le mie esigenze. Hanno anche un’opzione per inviare messaggi a un gruppo di sviluppatori e team IT. I miei criteri erano semplici:
- Avevo bisogno di supporto per i miei script Perl, Python e bash / shell.
- È necessario inviare la notifica all’iPhone.
- Non deve essere molto costoso.
Il servizio Pushover sembra soddisfare tutte le mie esigenze. Basta parlare, sporciamoci le mani con alcuni esempi.
Passaggio 1: iscriviti a Pushover
Primo download dei client del dispositivo Pushover:
- Versione Android
- Versione iOS (iPhone, iPod Touch e iPad)
Assicurati di iscriverti al servizio o di ottenere un account di prova di sette giorni. Una volta effettuato l’accesso, registra la tua applicazione cli, imposta il suo nome e ottieni in cambio un token API.
Passaggio 2: creare uno script API wrapper di script di shell
Crea un nuovo script di shell come segue:
$ vi ~/bin/cli_app.sh
Aggiungi il codice:
#!/usr/bin/env bash
# push/send message ios and android using API from my Linux box
# Set API stuff
_token='YOUR-API-TOKEN-HERE'
_user='YOUR-USER-NAME-HERE'
# Bash function to push notification to my iPhone
# yes you can push/send message android too using the same function
push_to_mobile(){
local t="${1:cli-app}"
local m="$2"
[[ "$m" != "" ]] && curl -s
--form-string "token=${_token}"
--form-string "user=${_user}"
--form-string "title=$t"
--form-string "message=$m"
https://api.pushover.net/1/messages.json
}
Quindi, usa il comando source:
$ source ~/bin/cli_app.sh
Provalo:
$ push_to_mobile "bash-notification" "This is a test. Job foo failed on $HOSTNAME @ $(date)"
Immediatamente riceverò una notifica sul mio telefono:
Shell ha inviato notifiche push al mio iPhone dalla riga di comando di Linux
Come inviare e-mail e notifiche push al telefono dallo script
Possiamo usare semplicemente il comando sendmail o il comando mail come segue dai nostri script di shell:
#!/usr/bin/bin bash
# Wrapper backup-script.sh by Vivek Gite under GPL v2.0+
# -------------------------------------------------------
#
# Set email stuff
# warning: must need pre-configured smtpd such as sendmail/postfix
#
subject="rsnapshot backup job failed at $HOSTNAME"
log_file="/path/to/my.log.txt"
from="webmaster@cyberciti.biz"
to="webmaster@cyberciti.biz"
#
# start daily backup and set log to ${log_file}
# all reports created by rsnapreport.pl script including ERROR
#
/usr/bin/rsnapshot daily 2>&1 | /root/bin/rsnapreport.pl > "${log_file}"
# Catch errors
status=$?
alogs="$(egrep -w '^ERROR:|ERROR' $log_file)"
# If failed, notify using both email and push message to my phone
if [ $status -ne 0 ] || [ "$alogs" != "" ];
then
mail -A "$log_file" -s "$subject" -r "$from" "$to" <<< "Backup script failed with error. Check attached log file"
#
# Push/send message to iOS and Android using Pushover API too
#
source ~/bin/cli_app.sh
push_to_mobile "backup-script" "$subject. See $to email for detailed failed log." >/dev/null
fi
Vedere i seguenti tutorial per ulteriori informazioni sull’invio di e-mail dalla CLI:
Conclusione
Finora, il servizio e l’app Pushover hanno funzionato alla grande per me. Posso facilmente inviare / inviare messaggi a dispositivi iOS e Android utilizzando script shell / Perl / Python.
Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!