Утилита для отправки электронной почты мне, если мой сайт не работает

Команда service является частью пакета sysvinit-utils .

Установите его с помощью:

apt-get install sysvinit-utils

Но, скорее всего, он уже установлен в / usr / sbin / service .

Если он отсутствует в вашем $ PATH , добавьте эту строку в свой ~ / .bashrc :

PATH=$PATH:/usr/sbin

0
15.02.2018, 22:26
4 ответа

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

10
28.01.2020, 02:13

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_tokenes su token de autenticación Pushbullet después de registrarse.

1
28.01.2020, 02:13

Pruebe con un truco del script que construí a continuación. Mi ejemplo contiene 3 hosts bien conocidos y 2 hosts no -existentes.

pingtest.sh

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
2
28.01.2020, 02:13

Вы можете использовать что-то вроде этого;

> 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
  • просто запустите его в tmux/screen/nohup (или используйте cron и echo $UP > /dev/shm/email_warning.tmpи т. д.)
  • Сценарий можно настроить для мониторинга локальной или удаленной службы, если вы также хотите получать электронные письма о проблемах с сетью и сервером.
  • Возможно, желательно проверить ответ службы для других режимов отказа (, таких как неработающая -база данных ).
  • Вам не нужен собственный функционирующий SMTP-сервер (, хотя sendmail установлен с постфиксом ), чтобы он работал, пока вы не находитесь в домашней сети
  • Функция doMail разработана таким образом, чтобы Gmail оптимизировал переадресацию на телефон без данных.
  • Спам-фильтр Gmail не будет проблемой, если у вас есть действующий SPF в вашем DNS или вы просто добавите адрес электронной почты в свои контакты и добавите не спам-фильтр.
4
28.01.2020, 02:13

Теги

Похожие вопросы