LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Una de las tareas esenciales para los desarrolladores y administradores de sistemas es recibir una notificación de alerta sobre servicios fallidos o quedarse sin espacio en disco y otras fallas críticas. Veamos cómo enviar o enviar un mensaje directo a un dispositivo móvil con tecnología Apple iOS o Google Android.

Cómo enviar/notificar mensajes a iOS y Android en tiempo real.

Podríamos (no va ser el caso) utilizar el servicio de notificaciones push de AWS SNS para enviar una alerta directamente a una aplicación en un dispositivo móvil. Sin embargo, hoy voy a usar un servicio de aplicación sencillo llamado Pushover. Es una aplicación sencilla para recibir notificaciones en tiempo real en Android, iPhone, iPad y escritorio, incluidos Android Wear y Apple Watch. Veamos cómo usar Linux para enviar notificaciones a un dispositivo Android o iOS.

¿Por qué enviar notificaciones push desde la CLI de Linux?

Como desarrollador independiente y administrador de sistemas de Linux, necesitaba una forma sencilla de recibir una notificación para mis proyectos paralelos mediante la API. Puedo recibir una notificación por copias de seguridad fallidas o mi servicio Nginx sobrecargado debido a problemas o la réplica de solo lectura de MySQL no está sincronizada. Mi búsqueda terminó con Pushover. Sin embargo, no es un servicio gratuito. Para usar Pushover para usted o un grupo pequeño, es solo una compra única de USD $ 5 en cada plataforma. Puedes enviar 7.500 mensajes al mes, lo que es más que suficiente para mis necesidades. También tienen la opción de enviar mensajes para un grupo de desarrolladores y equipos de TI. Mis criterios eran simples:

  1. Necesitaba soporte para mis scripts Perl, Python y bash/shell.
  2. Debe empujar la notificación al iPhone.
  3. No debe ser muy caro.

El servicio Pushover parece cumplir con todos mis requisitos. Suficiente charla, ensuciemos nuestras manos con algunos ejemplos.

Paso 1: regístrate en Pushover

Primero descargue los clientes de dispositivos Pushover :

  • versión de Android
  • Versión iOS (iPhone, iPod Touch y iPad)

Asegúrese de suscribirse al servicio o de obtener una cuenta de prueba de siete días. Una vez que haya iniciado sesión, registre su aplicación cli, configure su nombre y obtenga un token API a cambio.

Paso 2: cree una secuencia de comandos API contenedora de secuencias de comandos de shell

Cree un nuevo script de shell de la siguiente manera:

#!/usr/bin/env bash
# Purpose: Send notification to phone - push/send message ios and android using API from my Linux box/vm/server
# Author: Vivek Gite
# 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
}

A continuación, utilice el comando fuente :

source ~/bin/cli_app.sh

Pruébalo:

push_to_mobile "bash-notification" "This is a test. Job foo failed on $HOSTNAME @ $(date)"

Inmediatamente recibiré una notificación en mi teléfono:


Shell envió notificaciones automáticas a mi móvil desde la línea de comandos de Linux

Cómo enviar correos electrónicos y notificaciones automáticas a su teléfono desde un script

Podemos usar simplemente el comando sendmail o el comando mail de la siguiente manera desde nuestros scripts de shell:

#!/usr/bin/bin bash 
# Wrapper backup-script.sh de Vivek Gite bajo GPL v2.0+ 
# ------------------------ ------------------------------- 
# 
# Establecer cosas de correo electrónico 
# advertencia: debe necesitar smtpd preconfigurado como sendmail/postfix 
# 
subject = "el trabajo de copia de seguridad de la instantánea falló en $HOSTNAME " 
log_file="/path/to/my.log.txt" 
from="Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo." 
to="Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo." 
# 
# iniciar la copia de seguridad diaria y establezca el registro en ${log_file} 
# todos los informes creados por el script rsnapreport.pl, incluido el ERROR 
#
/usr/bin/rsnapshot daily  2>&1 | /root/bin/rsnapreport.pl > "${log_file}"
 
# Catch errors 
status=$?
alogs="$(grep -E -wi '^ERROR:|ERROR|WARNING|WARNING:' $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

Conclusión

Hasta ahora, el servicio y la aplicación Pushover me funcionaron muy bien. Puedo enviar/enviar mensajes fácilmente a dispositivos iOS y Android utilizando scripts de Shell/Perl/Python.

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías