nixp.ru v3.0

24 мая 2017,
среда,
05:23:19 MSK

DevOps с компанией «Флант»
anonymous написал 1 мая 2005 года в 16:42 (421 просмотр) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Здравствуйте!

Есть у меня сервак.

Хочу автоматизировать контроль за жестким диском.

Настроил smartd. Но вот немогу настроить отсылку его лога по почте:

когда смарт отсылает почту, то он выполняет скриет /bin/mail.

его то я и пишу.

Сделал следующее:

ip=» ip -адрес пчтового сервера»

port= «порт на почтовике»

telnet $ip $port << EOF

HELO hostname

MAIL FROM:

RCPT TO:

DATA

$log

.

QUIT

Но это не работает — телнет коннектится к хосту и тутже говорит, что хост разорвал соединение :(

Если запустить телнет из командной строки, то все работает.

Помогите, плиз!

Genie

а ты уверен, что это должен быть скрипт?

по мне, так это такая программа, которая входит в состав пакета (ну, в Debian)

$ dpkg -S `which mail`

mailx: /usr/bin/mail

и тем и занимается, что читает/шлёт почту.. ;)

ну и man mail рассказывает, как оно используется.

впрочем, как я понимаю, smartd по умолчанию отсылает почту локальному пользователю root, от которого можно настроить перенаправление почты куда угодно (при помощи того же procmail)…

либо для этого использовать любой почтовый сервер — sendmail, exim, postfix, qmail, … — вариантов море.

это — более правильный путь.

теперь что касается реализации, написанной несколько выше…

после DATA указанное $log не будет подставляться. потому как bash до EOF просто будет копировать указанное… не обрабатывая, не подставляя ничего.