У меня есть 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
Ваш сценарий смотрит хорошо. Необходимо добавить 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
установка правильным способом.