У меня есть 5 хостов, на которые мне нужно пинговать, если кто-нибудь отключится, я должен быть предупрежден по электронной почте, что это возможно ..?

У меня есть 5 хостов, на которые мне нужно пинговать, если кто-нибудь отключит меня, я должен быть предупрежден по электронной почте, что это возможно ..? и это будет проверяться каждые 20 минут. кто-нибудь может мне помочь .. Заранее спасибо ...

Я использовал этот сценарий. Нужно ли вносить какие-либо изменения для получения ожидаемого результата?

Пожалуйста, предложите свое мнение, пожалуйста.

    #!/bin/bash

    for i in $( cat $HOME/iplist.txt )
    do
    ping -q -c2 $i > /dev/null
    if [ $? -eq 0 ]
    then
    echo $i "Pingable"
    else
    echo $i "Not Pingable"
    fi
    done
1
задан 19 April 2016 в 10:09

1 ответ

Ваш сценарий смотрит хорошо. Необходимо добавить exit 0 / exit 1 для отказа / успех.. больше информации ниже.

и это будет проверено с каждыми 20 минутами

, Если сценарий должен всегда работать, каждые 20 минут в фоновом режиме, необходимо использовать cron, который уже доступен в системе.

Как этот весь вывод Вашего сценария будет отправлен по почте для укоренения, если сценарий возвратится 1 (ОТКАЗ).. однако на значение по умолчанию корневая почта просто переходит к некоторой папке. Необходимо установить & настройте почтового демона для передачи корневой почты персональному почтово-адресному. То, как это может быть сделано, например, объяснило здесь: https://superuser.com/questions/306163/what-is-the-you-have-new-mail-message-in-linux-unix

Или здесь: Простой способ переслать всю электронную почту

Редактирование:

хорошо, здесь некоторые команды для добиваний цели.

1.) Сначала Вам нужна версия Вашего сценария, который выходит 1 при отказе. Что-то вроде этого должно сделать:

#!/bin/bash

ALL_HOSTS_AVAILABLE=true
for i in $( cat $HOME/iplist.txt )
do
   ping -q -c2 $i > /dev/null
   if [ $? -eq 0 ]
   then
      echo $i "Pingable"
   else
      echo $i "Not Pingable"
      ALL_HOSTS_AVAILABLE=false
fi
done

if [ "$ALL_HOSTS_AVAILABLE" = false ] ; then
   echo 'Some hosts were not available!'
   exit 1
fi
exit 0

2.) Теперь удостоверяются, что Вам установили sudo-полномочия для Вашего пользователя (Вы не хотите делать вещи непосредственно как корень). В противном случае следуйте этому руководству: , Как, я добавляю пользователя к " sudo" группа? , Возможно, сначала необходимо установить пакет sudo

su root
apt-get install sudo

3.) Копируют Ваш сценарий в некоторую папку, которая видима всем пользователям, и передайте его для укоренения. Например:

sudo cp myScript /usr/local/bin
sudo chown root /usr/local/bin/myScript
sudo chgrp root /usr/local/bin/myScript

4.) Устанавливают cronjob, который выполняет Ваш сценарий

# write out current crontab
crontab -l > mycron
# echo new cron into cron file */20 means each 20 minutes
# Check https://de.wikipedia.org/wiki/Cron for format
echo "*/20 * * * * /usr/local/bin/myScript" >> mycron
# install new cron file
sudo crontab mycron
rm mycron

5.) Устанавливают некоторый MTA, таким образом, Вы получаете работу уведомления по электронной почте.. похоже, что самый простой - nullmailer

sudo apt-get install nullmailer

.. Я не знаю, что детали, просто Google для справки делают эти nullmailer установка правильным способом.

0
ответ дан 19 April 2016 в 20:09

Другие вопросы по тегам:

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