05-03-2019, 10:10 AM
Hola
He hecho alguna mejora en los scripts. Uno para la Qnap principal con SAI por USB y otro para el Qnap secundario que es informado del estado del SAI por ethernet.
Aquí está el que se ejecuta en la Qnap que NO tienen fisicamente conexión con el SAI. La que tiene conexión con el SAI por usb tiene una ip 192.168.10.69.
El archivo lo he llamado sai.sh y lo dejo en la carpeta /share/CACHEDEV1_DATA/Scripts. Yo lo he dejado programado para que se ejecute cada 5 minutos.
El archivo puede generar los archivos temporales que le sirven para saber para saber el estado previo y que sólo te haga un aviso por correo cada vez que se cambia el estado del SAI y no cada 5 minutos.
El script en la Qnap que tiene el SAI conectado por USB es básicamente el mismo con algún cambio de mensaje.
También se llama sai.sh y está ubicado en /share/CACHEDEV1_DATA/Scripts y se ejecuta cada 5 minutos
He hecho alguna mejora en los scripts. Uno para la Qnap principal con SAI por USB y otro para el Qnap secundario que es informado del estado del SAI por ethernet.
Aquí está el que se ejecuta en la Qnap que NO tienen fisicamente conexión con el SAI. La que tiene conexión con el SAI por usb tiene una ip 192.168.10.69.
El archivo lo he llamado sai.sh y lo dejo en la carpeta /share/CACHEDEV1_DATA/Scripts. Yo lo he dejado programado para que se ejecute cada 5 minutos.
El archivo puede generar los archivos temporales que le sirven para saber para saber el estado previo y que sólo te haga un aviso por correo cada vez que se cambia el estado del SAI y no cada 5 minutos.
Código:
#! /bin/bash
destino="destinatario@gmx.com"
remite="remitente@gmail.com"
ups=$(upsc qnapups@192.168.10.69 | grep ups.status:)
estado=${ups:12:2}
echo "$ups $estado"
if [ "$estado" = "OL" ]; then
echo "EL SAI está con energia electrica en la NAS con SAI"
#compruebo si existe el archivo de flag para saber si ha vuelto la energía
if [ -f flag1.txt ]; then
# si existe el archivo flag1.txt de no comunicacion con el SAI, lo borro
rm flag1.txt
elif [ -f flag.txt ]; then
# envío un correo avisando de que ha vuelto la energía eléctrica
echo "Subject: SAI en carga en NAS principal" > correo.txt
echo "From: $origen" >> correo.txt
echo "To: $destino" >> correo.txt
echo "Ha retornado la energia electrica, el SAI se pone en carga" >> correo.txt
cat correo.txt | /usr/sbin/sendmail -t
rm flag.txt
# aborto ordenes de apagado a otros equipos
fi
elif [ "$estado" = "OB" ]; then
if [ -f flag1.txt ]; then
# si existe el archivo flag1.txt de no comunicacion con el SAI, lo borro
rm flag1.txt
fi
echo "El SAI está con baterías en NAS principal"
# envío un correo avisando de que el SAI entra en accion
echo "Subject: SAI en funcionamiento en NAS principal" > correo.txt
echo "From: $origen" >> correo.txt
echo "To: $destino" >> correo.txt
echo "Hay caida de energía eléctrica, el SAI entra en marcha" >> correo.txt
cat correo.txt | /usr/sbin/sendmail -t
echo "SAI en marcha" > flag.txt
# lanzo ordenes de apagado a otros equipos
else
echo "No contacto con el SAI"
if [ ! -f flag1.txt ]; then
# si NO existe el archivo flag1.txt de no comunicacion con el SAI, lo creo y envío correo
echo "Subject: No encuentro SAI" > correo.txt
echo "From: $origen" >> correo.txt
echo "To: $destino" >> correo.txt
echo "No comunico con el SAI de la NAS principal, puede estar apagada la NAS" >> correo.txt
cat correo.txt | /usr/sbin/sendmail -t
#creo archivo flag1 para que solo se avise una vez por correo
echo "SAI sin contacto" > flag1.txt
fi
fi
#borro el archivo de correo
if [ -f correo.txt ]; then
rm correo.txt
fi
El script en la Qnap que tiene el SAI conectado por USB es básicamente el mismo con algún cambio de mensaje.
También se llama sai.sh y está ubicado en /share/CACHEDEV1_DATA/Scripts y se ejecuta cada 5 minutos
Código:
#! /bin/bash
destino="destinatario@gmx.com"
remite="remitente@gmail.com"
ups=$(upsc qnapups@localhost | grep ups.status:)
estado=${ups:12:2}
echo "$ups $estado"
if [ "$estado" = "OL" ]; then
echo "EL SAI está con energia electrica en la NAS con SAI"
#compruebo si existe el archivo de flag para saber si ha vuelto la energía
if [ -f flag1.txt ]; then
# si existe el archivo flag1.txt de no comunicacion con el SAI, lo borro
rm flag1.txt
elif [ -f flag.txt ]; then
# envío un correo avisando de que ha vuelto la energía eléctrica
echo "Subject: SAI en carga" > correo.txt
echo "From: $origen" >> correo.txt
echo "To: $destino" >> correo.txt
echo "Ha retornado la energia electrica, el SAI se pone en carga" >> correo.txt
cat correo.txt | /usr/sbin/sendmail -t
rm flag.txt
# aborto ordenes de apagado a otros equipos
fi
elif [ "$estado" = "OB" ]; then
if [ -f flag1.txt ]; then
# si existe el archivo flag1.txt de no comunicacion con el SAI, lo borro
rm flag1.txt
fi
echo "El SAI está con baterías"
# envío un correo avisando de que el SAI entra en accion
echo "Subject: SAI en funcionamiento en NAS principal" > correo.txt
echo "From: $origen" >> correo.txt
echo "To: $destino" >> correo.txt
echo "Hay caida de energía eléctrica, el SAI entra en marcha" >> correo.txt
cat correo.txt | /usr/sbin/sendmail -t
echo "SAI en marcha" > flag.txt
# lanzo ordenes de apagado a otros equipos
else
echo "No contacto con el SAI"
if [ ! -f flag1.txt ]; then
# si NO existe el archivo flag1.txt de no comunicacion con el SAI, lo creo y envío correo
echo "Subject: No encuentro SAI" > correo.txt
echo "From: $origen" >> correo.txt
echo "To: $destino" >> correo.txt
echo "No comunico con el SAI, puede estar desconectador el cable USB" >> correo.txt
cat correo.txt | /usr/sbin/sendmail -t
#creo archivo flag1 para que solo se avise una vez por correo
echo "SAI sin contacto" > flag1.txt
fi
fi
#borro el archivo de correo
if [ -f correo.txt ]; then
rm correo.txt
fi
Un saludo
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η