LinuxForum.Fans
Тема

Shell Script + ping

Автор: Lupo_Alberto 24 сообщений 8567 просмотров
#65898

Как-то так:

text
while :; do sleep 30; ping -c3 ya.ru > /dev/null 2>&1|| mail < ADRESS>; done
#65899
Lupo Alberto написал:
Как-то так:
text
while :; do sleep 30; ping -c3 ya.ru > /dev/null 2>&1|| mail < ADRESS>; done

поясните пожалуйста , ну с циклом понятно, а что это и как работает /dev/null 2>&1 ?

Хочу сделать скрипт для проверки состояния удаленных машин. Примерно так : в цикле , через определенный интервал времени, пинг ип адресов + mailto если нет пинга , на какой параметр проверить правильность выполнения команды , т.е что хост доступен через пинг ? Посмотрел здесь
Advanced Bash-Scripting Guide , есть там такой параметр $?. Вообщем жду советов ... Спасибо

#65902
Bokas написал:
[quote=Lupo Alberto]Как-то так:
text
while :; do sleep 30; ping -c3 ya.ru > /dev/null 2>&1|| mail < ADRESS>; done

поясните пожалуйста , ну с циклом понятно, а что это и как работает /dev/null 2>&1 ?[/quote]
> /dev/null 2>&1 — подавить полностью вывод команды и вывод ошибок,
|| — если последняя команда завершилась с кодом, отличным от «0», т.е. с ошибкой, запустить команду, в данном случае, mail

#65911

... и еще вопрос , вот пытаюсь отправиь почту из консоли пишу linux-mbyu:~> mailto 123@gmail.com -s "test" , и не получается... почему ?

#65912
Bokas написал:
... <> и не получается... почему ?

Не слишком информативно wink
Покажите, хотя бы, вывод команды.

#65914

ничего не выводит , просто висит

#65919

Bokas
Немного отойду от темы с советом, может стоит посмотреть в сторону специализированного софта для мониторинга серверов- Nagios или Zabbix? Там не только на доступность мониторить будет, но и на многое иное и будет всё на мыло\джабер\смс присылать.

#65927
Bokas написал:
ничего не выводит , просто висит

Какой именно командой вы пытаетесь отправить почту?

#65939
Lupo Alberto написал:
[quote=Bokas]ничего не выводит , просто висит

Какой именно командой вы пытаетесь отправить почту?[/quote]
По поводу почты : mailto <Address> -s <Message>, пробовал вот так , но сейчас поставил ssmtp, буду пробовать.

#66001

пробовал c помощью ssmtp почту послать.
Вот пишу echo "test" | ssmtp my_mail@gmail.com
ssmtp: Server didn't like our AUTH LOGIN (530 5.7.0 Must issue a STARTTLS command first. b36sm1392514faq.11) oO

вот конфиг

#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=my_mail@gmail.com
UseTLS=YES
UseSTARTTLS=YES
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and you mailhub is so named.
mailhub=smtp.gmail.com:587
# Where will the mail seem to come from?
# The full hostname
rewriteDomain=
hostname=my_mail@gmail.com
root=my_mail@gmail.com
FromLineOverride=YES
AuthUser=my_mail@gmail.com
AuthPass=******

#66214

Bokas

и еще вопрос , вот пытаюсь отправиь почту из консоли пишу

Опробуйте так:

text
/usr/lib/sendmail -f name(от кого)@***.ru name(кому)@***.ru <Текст письма

@***- звёздочками закрыт почтовый сервер напрмер mail, rambler, yandex какой у Вас.

#66235

нашел причину:

The IP you're using to send email... ("IP-адрес, используемый для отправки писем, не авторизован ...")Печать
В целях борьбы со спамом Gmail отказывается принимать письма, если IP-адрес отправителя не совпадает с его доменом. При отправке писем со своего сервера на адреса Gmail используйте SMTP-сервер, предоставленный вашим поставщиком услуг Интернета. Обратите внимание, что в настоящее время у нас нет возможности вести белые списки IP-адресов или вносить их в список исключений каким-либо иным способом.
А если мой провайдер не предоставляет подобных услуг... или я че то не знаю... oO

cat /var/spool/mail/adminb
***@gmail.com>: host gmail-smtp-in.l.google.com[74.125.39.27] said:
550-5.7.1 [my_ip_address] The IP you're using to send mail is not authorized
to 550-5.7.1 send email directly to our servers. Please use the SMTP relay
at your 550-5.7.1 service provider instead. Learn more at
550 5.7.1 http://mail.google.com/support/bin/answer.py?answer=10336
z11si3995260fam.115 (in reply to end of DATA command)

#66237

Я сейчас попробовал с таким конфигом и все работает

text
root=postmaster
root=saikov.vb@gmail.com
UseTLS=YES
UseSTARTTLS=YES
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=saikov.vb@gmail.com
root=saikov.vb@gmail.com
FromLineOverride=YES
AuthUser=saikov.vb@gmail.com
AuthPass=*************
#66239
xlin написал:
Я сейчас попробовал с таким конфигом и все работает
text
root=postmaster
root=saikov.vb@gmail.com
UseTLS=YES
UseSTARTTLS=YES
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=saikov.vb@gmail.com
root=saikov.vb@gmail.com
FromLineOverride=YES
AuthUser=saikov.vb@gmail.com
AuthPass=*************

а здесь что то пишите ? /usr/local/etc/ssmtp/revaliases

#66241

нет... он в другом месте

text
[root@saikov Tcl\Tk]# cat /etc/ssmtp/revaliases 
# sSMTP aliases
# 
# Format:    local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.

xlin:saikov.vb@gmail.com:smtp.gmail.com:587 # Алиас для юзера xlin

Проверил отправку в скрипте, работает, а то не которые ругались

text
#!/usr/bin/tclsh
exec echo test | ssmtp saikov.vb@gmail.com
#66242

у меня тоже самое в конфиге , но вот ошибка таже


linux-9c0k:~ # echo "test" | ssmtp iBokas@gmail.com
ssmtp: Server didn't like our AUTH LOGIN (530 5.7.0 Must issue a STARTTLS command first. a9sm3064828bky.11)
:(

#66244

А у прова есть свой smtp сервер?

#66248
xlin написал:
А у прова есть свой smtp сервер?

есть :-)) ,ща опробую

#66251

меняю mailhub = на smtp сервер провайдера , но порт оставляю тотже

ssmtp: Cannot open relay.ukrpost.ua:587

если убираю порты файлах revaliases , ssmtp.conf

ssmtp: 501 Syntactically invalid EHLO argument(s) (iBokas@gmail.com)

Войдите или зарегистрируйтесь, чтобы ответить.