Команда service
является частью пакета sysvinit-utils .
Установите его с помощью:
apt-get install sysvinit-utils
Но, скорее всего, он уже установлен в / usr / sbin / service
.
Если он отсутствует в вашем $ PATH
, добавьте эту строку в свой ~ / .bashrc
:
PATH=$PATH:/usr/sbin
Lo mejor es usar un servicio como uptime robot . El nivel gratuito cubrirá menos de 50 sitios, el plan profesional es bastante económico. Hará una simple verificación de ping o incluso una verificación de código de estado HTTP
El resultado de esto es que no está agregando un punto adicional de falla (que puede controlar ). Ya no tiene que mantener y actualizar un servicio de monitoreo
Si no está casado con el correo electrónico, puede usar Pushbullet , que le enviará una notificación automática a su teléfono usando curl
. Necesitas instalarlo en tu dispositivo móvil.
Luego, simplemente tenga un pequeño script bash que riza su sitio web y, si no responde, envía una notificación automática directamente a su teléfono como esta:
curl -u $auth_token: https://api.pushbullet.com/v2/pushes -d type=note -d title="Alert" -d body="$MSG"
donde $auth_token
es su token de autenticación Pushbullet después de registrarse.
Pruebe con un truco del script que construí a continuación. Mi ejemplo contiene 3 hosts bien conocidos y 2 hosts no -existentes.
HOSTLIST='www.google.com www.oracle.com www.facebook.com www.sdfafdsfdsf.com www.uieyafbmndhfjsbxcvn.com'
BAD_HOSTLIST=
for HOST in $HOSTLIST ; do
echo $HOST
ping -c 3 -w 5 $HOST || BAD_HOSTLIST="$BAD_HOSTLIST $HOST"
echo =======================
done
if [ -n "$BAD_HOSTLIST" ] ; then
echo ___________________________________________
echo The following hosts failed the ping test:-
echo $BAD_HOSTLIST | xargs -n 1
echo $BAD_HOSTLIST | mailx -s 'Hosts that failed the ping test' MyName@gmail.com
fi
Si necesita configurar rápidamente un reenviador de correo, pruebe este breve y sencillo artículo sobre el uso de ssmtp:https://www.cyberciti.biz/tips/linux-use-gmail-as-a-smarthost.html
Un vistazo rápido a la salida de la secuencia de comandos se encuentra a continuación:
#./pingtest.sh
www.google.com
PING www.google.com (216.58.200.100) 56(84) bytes of data.
64 bytes from www.google.com (216.58.200.100): icmp_seq=1 ttl=55 time=29.8 ms
64 bytes from www.google.com (216.58.200.100): icmp_seq=2 ttl=55 time=28.4 ms
64 bytes from www.google.com (216.58.200.100): icmp_seq=3 ttl=55 time=30.3 ms
--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 28.483/29.577/30.365/0.810 ms
=======================
www.oracle.com
PING e870.dscx.akamaiedge.net (104.116.147.64) 56(84) bytes of data.
64 bytes from www.oracle.com (104.116.147.64): icmp_seq=1 ttl=56 time=29.5 ms
64 bytes from www.oracle.com (104.116.147.64): icmp_seq=2 ttl=56 time=28.3 ms
64 bytes from www.oracle.com (104.116.147.64): icmp_seq=3 ttl=56 time=27.8 ms
--- e870.dscx.akamaiedge.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 27.842/28.570/29.503/0.706 ms
=======================
www.facebook.com
PING star-mini.c10r.facebook.com (157.240.8.35) 56(84) bytes of data.
64 bytes from www.facebook.com (157.240.8.35): icmp_seq=1 ttl=53 time=27.8 ms
64 bytes from www.facebook.com (157.240.8.35): icmp_seq=2 ttl=53 time=79.4 ms
64 bytes from www.facebook.com (157.240.8.35): icmp_seq=3 ttl=53 time=79.0 ms
--- star-mini.c10r.facebook.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 27.887/62.130/79.467/24.215 ms
=======================
www.sdfafdsfdsf.com
ping: www.sdfafdsfdsf.com: Name or service not known
=======================
www.uieyafbmndhfjsbxcvn.com
ping: www.uieyafbmndhfjsbxcvn.com: Name or service not known
=======================
___________________________________________
The following hosts failed the ping test:-
www.sdfafdsfdsf.com
www.uieyafbmndhfjsbxcvn.com
Вы можете использовать что-то вроде этого;
> cat email_warning.sh
#!/bin/bash
#
# email_warning.sh
#
UP=true
FROM=you@valid.spf
TO=you@gmail.com
MAX=5
URL="https://$(hostname)/"
function doMail {
S="$1 $(date)"
F=$(echo $S | perl -p0e 's/[\s\t ]+/_/g;s/^(.{122}).*$/$1/g')
echo -e "Subject:$S\n\n$S" | sendmail -F $F -f $FROM $TO
}
function doUP {
curl -s -m $MAX "$URL" > /dev/null
R=$?;
if [ "$R" == "0" -a "$UP" == false ] ; then
UP=true
doMail "recovered $URL"
elif [ "$R" != "0" -a "$UP" == true ] ; then
UP=false
doMail "over $MAX s for $URL"
fi
}
while [ "" == "" ] ; do
ping -c 2 8.8.8.8 >/dev/null 2>&1
if [ "$?" == "0" ] ; then
doUP
fi
sleep 60
done
echo $UP > /dev/shm/email_warning.tmp
и т. д.)