Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок
Модераторы: vadim64, terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-05 8:13:16
Уважаемы гуру ... подскажите как сделать скрипт которые бы пинговал хосты определенные и если нет пинга то отправлял бы сообщение?
Я навоял следующий скриптик:
Код: Выделить всё
ping -c1 -q 10.239.1.103 > /dev/null || echo 'NO PING TO DB' | mail -s 'Ping' 7950******@sms.bwc.ru
ping -c1 -q 10.239.1.104 > /dev/null || echo 'NO PING TO TAD' | mail -s 'Ping' 7950******@sms.bwc.ru
Поставил его в крон каждые 5 минут ... но как сами уже догодались при отсутствии пинга ... каждые 5 минут и будут идти сообщения ... как от этого избавиться? и что бы пришло сообщение что пинга нет до хоста ... а следующая пришла бы уже что хост включился?
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
-
Контактная информация:
Непрочитанное сообщение
gumeniuc » 2013-09-05 8:34:59
надо обозначить какой-либо "флаг", который укажет был отправлен email или нет.
Да шо ему сделается...
gumeniuc
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-05 8:47:12
как это сделать?
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-05 8:52:50
Была мысля записывать эти самые "флаги" в файл ... и потом считывать его ... но как правильно это реализовать не знаю ((((
вот сей бред:
Код: Выделить всё
#!/bin/sh
vars=`cat /usr/local/etc/scripts/log.txt`
for i in $vars; do eval $i; done
if [ "$db" == "no" ]
then
ping -q -c5 10.239.1.103 > /dev/null
if [ $? -eq 0 ]
then
echo 'PING TO DB -- OK' | mail -s 'Ping' 7950******@sms.bwc.ru
[b]// по идеи тут должена очищаться только определенная переменная, иначе при большом количестве хостов будет глюк[/b]
[b]cat /dev/null > /usr/local/etc/scripts/log.txt[/b]
fi
else
ping -c1 -q 10.239.1.103 > /dev/null || echo 'PING TO DB -- NO' | mail -s 'Ping' 7950******@sms.bwc.ru
db="db=no"
fi
echo $db >> /usr/local/etc/scripts/log.txt
Часть скрипта не работает ... так как плохо знаком с программированием на Shell
Последний раз редактировалось
tray.irk 2013-09-05 8:57:36, всего редактировалось 1 раз.
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
-
Контактная информация:
Непрочитанное сообщение
gumeniuc » 2013-09-05 8:56:35
не самый оптимизированный пример:
создать файл, например /бла-бла-бла/10.239.1.104.flag, где хранить 0 или 1, в зависимости от того, было отправлено письмо или нет
логика скрипта примерно следующая:
if (ping failed)
then
if ( flag = 0 )
then
send email; set flag =1
fi
else
set flag = 0
fi
Да шо ему сделается...
gumeniuc
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-05 9:12:04
структуру то я понимаю как должно быть ))) с кодом плохо у меня (((
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
werder31
- сержант
- Сообщения: 217
- Зарегистрирован: 2009-12-22 10:48:41
- Откуда: from Ukraine
-
Контактная информация:
Непрочитанное сообщение
werder31 » 2013-09-05 9:45:11
Код: Выделить всё
/sbin/ping -q -c 5 -t 5 8.8.8.8 || /etc/sms.sh
sms.sh:
Код: Выделить всё
sendEmail -f from_mail@gmail.com -t to_mail@mail.ru -o message-charset=utf-8 -u "Photos..." -m "Тут идет небольшое тело письма..." -s smtp.gmail.com -xu from_mail@gmail.com -xp PASSWORD -l log_file.txt -a photo_1.jpeg photo_2.jpeg
SendEmail - софт небольшой перловый скрипт, ставить отдельно
Любите жизнь, ведь она все равно отымеет..так хоть по любви!
werder31
-
gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
-
Контактная информация:
Непрочитанное сообщение
gumeniuc » 2013-09-05 10:29:35
Попробуйте как-то так
Код: Выделить всё
#!/bin/sh
dir=/usr/home/ssh/
cat $dir/hosts | while read list
do
if [ $(ping -q -c1 $list | grep loss | cut -d " " -f7) == "0.0%" ]
then
echo 0 > $dir/$list.flag
else
if [ $(cat $dir/$list.flag) == "0" ]
then
echo "Sending email" ping errors with $list
echo 1 > $dir/$list.flag
fi
fi
done
Да шо ему сделается...
gumeniuc
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-05 16:39:24
Какое будет содержание файла hosts?
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-05 16:44:32
По поводу sendemail ... не совсем понял ... он просто будет отправлять ... а проверок я не вижу ...
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
-
Контактная информация:
Непрочитанное сообщение
gumeniuc » 2013-09-05 16:56:41
tray.irk писал(а):Какое будет содержание файла hosts?
список хостов
192.168.20.23
10.0.0.1
и тд
ну и под каждый хост соответственно свой файл и "флагом"
Да шо ему сделается...
gumeniuc
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-06 2:59:32
не работает так ((( ругается ...
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-06 3:05:53
Да и таким макаром файлы с флагами засруться быстро .... так как очистки нет предыдущего значения ...
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
-
Контактная информация:
Непрочитанное сообщение
gumeniuc » 2013-09-06 8:05:11
показывайте hosts файл
tray.irk писал(а):Да и таким макаром файлы с флагами засруться быстро .... так как очистки нет предыдущего значения ...
код внимательно смотрели ? что значит засрутся ?!
Да шо ему сделается...
gumeniuc
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-09 3:00:53
Код: Выделить всё
root@backup:/usr/local/etc/scripts # cat hosts
10.239.1.103
10.239.24.1
10.239.14.1
Код: Выделить всё
root@backup:/usr/local/etc/scripts # cat 1.sh
#!/bin/sh
dir=/usr/local/etc/scripts/
cat $dir/hosts | while read list
do
if [ $(ping -q -c1 $list | grep loss | cut -d " " -f7) == "0.0%" ]
then
echo 0 > $dir/$list.flag
else
if [ $(cat $dir/$list.flag) == "0" ]
then
echo "Sending email" ping errors with $list
echo 1 > $dir/$list.flag
fi
fi
done
Все файлы с флагами есть ... если есть пинги до хостов то все нормально ... если нет до одного хотя бы ... то выдает следующее:
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
-
Контактная информация:
Непрочитанное сообщение
gumeniuc » 2013-09-09 11:35:50
весьма странно, у меня всё работает. одно НО - в файле хостс не должно быть пустых строк.
ну а если тупит именно на отсутствии пинга, добавьте алерт и посмотрите где заваливается.
Да шо ему сделается...
gumeniuc
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-10 2:24:48
пустых строк нет ... что за алерт?
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
tray.irk
- сержант
- Сообщения: 266
- Зарегистрирован: 2008-10-22 8:21:36
- Откуда: Иркутск
-
Контактная информация:
Непрочитанное сообщение
tray.irk » 2013-09-10 5:25:04
Заработало
скрипт следующий:
Код: Выделить всё
#!/bin/sh
dir=/usr/local/etc/scripts/
cat $dir/hosts | while read list
do
if [ $(ping -q -c1 $list | grep loss | cut -d " " -f7) == "0.0%" ]
then
if [ "$(cat $dir/$list.flag)" == "1" ]
then
echo 'OK PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 'OK PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 0 > $dir/$list.flag
else
echo 0 > $dir/$list.flag
fi
else
if [ "$(cat $dir/$list.flag)" == "0" ]
then
echo 'ERROR PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 'ERROR PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 1 > $dir/$list.flag
fi
fi
done
и в крон каждую минуту
Числа не управляют миром, но могут показать как управляется мир
tray.irk
-
Spook1680
- лейтенант
- Сообщения: 996
- Зарегистрирован: 2009-07-28 12:26:09
Непрочитанное сообщение
Spook1680 » 2013-10-30 16:12:01
tray.irk писал(а):Заработало
скрипт следующий:
Код: Выделить всё
#!/bin/sh
dir=/usr/local/etc/scripts/
cat $dir/hosts | while read list
do
if [ $(ping -q -c1 $list | grep loss | cut -d " " -f7) == "0.0%" ]
then
if [ "$(cat $dir/$list.flag)" == "1" ]
then
echo 'OK PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 'OK PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 0 > $dir/$list.flag
else
echo 0 > $dir/$list.flag
fi
else
if [ "$(cat $dir/$list.flag)" == "0" ]
then
echo 'ERROR PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 'ERROR PING TO '$list'' | mail -s 'Ping' 7********@sms.bwc.ru
echo 1 > $dir/$list.flag
fi
fi
done
и в крон каждую минуту
А мож подсказать запускаю а в ответ тишина
не приходит на почту
ручками если запустить в ком. строке
Код: Выделить всё
echo OK PING TO | mail -s 'Ping' vasa.pupkin@yandex.ru
то письмо приходит
"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "
Spook1680
-
werder31
- сержант
- Сообщения: 217
- Зарегистрирован: 2009-12-22 10:48:41
- Откуда: from Ukraine
-
Контактная информация:
Непрочитанное сообщение
werder31 » 2013-10-31 17:21:02
в скрипте прописывайте полные пути и будет счастье!
Любите жизнь, ведь она все равно отымеет..так хоть по любви!
werder31
-
Spook1680
- лейтенант
- Сообщения: 996
- Зарегистрирован: 2009-07-28 12:26:09
Непрочитанное сообщение
Spook1680 » 2013-10-31 20:33:24
werder31 писал(а):в скрипте прописывайте полные пути и будет счастье!
Ок., заюзаю. спсибки.
"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "
Spook1680
-
lazhu
- сержант
- Сообщения: 254
- Зарегистрирован: 2013-08-10 14:28:38
-
Контактная информация:
Непрочитанное сообщение
lazhu » 2013-10-31 22:08:32
Какие сложности!
Код: Выделить всё
#!/usr/local/bin/perl
my $ping = `/sbin/ping -c 1 -t timeout i.p.ad.dr | grep '1 packets received' | wc -l`;
if ($ping eq "1\n"){
exit;
}
else {
`echo $ping | /usr/sbin/sendmail -s 'Subject' smbd@smwr.com`;
}
lazhu
-
gumeniuc
- ст. сержант
- Сообщения: 343
- Зарегистрирован: 2009-11-08 15:46:05
- Откуда: md
-
Контактная информация:
Непрочитанное сообщение
gumeniuc » 2013-11-01 9:02:02
Lazhu,
Браво, а теперь прочтите что писал ТС.
Да шо ему сделается...
gumeniuc