Страница 1 из 1

CRON и скрипт с уведомлением на e-mail

Добавлено: 2011-10-19 12:44:18
nitrokamera
Всем здрасте!
Задача - организовать e-mail оповещение если статус рейда меняется на DEGRADED
Есть скрипт который все это делает:

Код: Выделить всё

#!/bin/sh
state=`atacontrol status ar0  | grep -ie [b]ready[/b] | wc -l`
if [ "$state" -eq '1' ] || [ "$state" -eq '2' ] ; then
    echo 'Alarm, array on alm-s-freebsd1 is degrade' | sendmail -t -i -f admin@alm-s-freebsd1.tsp.lan sysadmins@tsp.lan
fi
Текущее состояние рейда "READY" по этому для проверки ищем не DEGRADED а READY

Если этот скрипт запускать руками - уведомления приходят! Но когда скрипт помещаю в CRON - ничего не приходит.
SENDMAIL настроен на SMART_HOST (т.е. внутри сети есть почтовик)

Логи /var/log/maillog

Код: Выделить всё

Oct 19 15:20:01 alm-s-freebsd1 sendmail[4209]: p9J9K10E004209: from=root, size=256, class=0, nrcpts=1, msgid=<201110190920.p9J9K10E004209@alm-s-freebsd1.tsp.lan>, relay=root@localhost

Oct 19 15:20:01 alm-s-freebsd1 sm-mta[4210]: p9J9K1ZH004210: from=<root@alm-s-freebsd1.tsp.lan>, size=575, class=0, nrcpts=1, msgid=<201110190920.p9J9K10E004209@alm-s-freebsd1.tsp.lan>, proto=ESMTP, daemon=IPv4, relay=localhost [127.0.0.1]

Oct 19 15:20:01 alm-s-freebsd1 sendmail[4209]: p9J9K10E004209: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30256, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p9J9K1ZH004210 Message accepted for delivery)

Oct 19 15:20:01 alm-s-freebsd1 sm-mta[4211]: p9J9K1ZH004210: to=<root@alm-s-freebsd1.tsp.lan>, ctladdr=<root@alm-s-freebsd1.tsp.lan> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30858, relay=local, dsn=2.0.0, stat=Sent

Oct 19 15:21:30 alm-s-freebsd1 sendmail[4225]: p9J9LUi0004225: from=admin@alm-s-freebsd1.tsp.lan, size=42, class=0, nrcpts=1, msgid=<201110190921.p9J9LUi0004225@alm-s-freebsd1.tsp.lan>, relay=root@localhost

Oct 19 15:21:30 alm-s-freebsd1 sm-mta[4226]: p9J9LU0s004226: from=<admin@alm-s-freebsd1.tsp.lan>, size=397, class=0, nrcpts=1, msgid=<201110190921.p9J9LUi0004225@alm-s-freebsd1.tsp.lan>, proto=ESMTP, daemon=IPv4, relay=localhost [127.0.0.1]

Oct 19 15:21:30 alm-s-freebsd1 sendmail[4225]: p9J9LUi0004225: to=sysadmins@tsp.lan, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30042, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p9J9LU0s004226 Message accepted for delivery)

Oct 19 15:21:30 alm-s-freebsd1 sm-mta[4228]: p9J9LU0s004226: to=<sysadmins@tsp.lan>, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30397, relay=alm-s-ex.tsp.lan. [10.10.10.14], dsn=2.0.0, stat=Sent ( <201110190921.p9J9LUi0004225@alm-s-freebsd1.tsp.lan> Queued mail for delivery)
Сообщения от Oct 19 15:20:01 - это cron
Сообщения от Oct 19 15:21:30 - это вручную

Вижу что поле from и relay отличаются, но как это исправить?

Re: CRON и скрипт с уведомлением на e-mail

Добавлено: 2011-10-19 13:38:36
dmtr
а если пути полные прописать ко всем командам

Код: Выделить всё

/sbin/atacontrol
/usr/bin/grep
/bin/echo
/usr/sbin/sendmail
можно еще выводить $state в лог-файл какой-нить, проверять чего там нагрепалось

Re: CRON и скрипт с уведомлением на e-mail

Добавлено: 2011-10-19 13:46:49
nitrokamera
dmtr писал(а):а если пути полные прописать ко всем командам

Код: Выделить всё

/sbin/atacontrol
/usr/bin/grep
/bin/echo
/usr/sbin/sendmail
можно еще выводить $state в лог-файл какой-нить, проверять чего там нагрепалось
Ух-ты работает! Помогло! Чем это обусловлено?

Re: CRON и скрипт с уведомлением на e-mail

Добавлено: 2011-10-19 13:53:23
mak_v_
переменными окружения

Re: CRON и скрипт с уведомлением на e-mail

Добавлено: 2011-10-20 8:03:21
spf
Через команду

Код: Выделить всё

crontab -e
добавить первой строкой переменную

Код: Выделить всё

PATH=/bin:/usr/bin:/sbin:/usr/sbin
Тогда не надо будет писать полные пути в командах.

Re: CRON и скрипт с уведомлением на e-mail

Добавлено: 2011-10-22 17:34:47
nitrokamera
spf писал(а):Через команду

Код: Выделить всё

crontab -e
добавить первой строкой переменную

Код: Выделить всё

PATH=/bin:/usr/bin:/sbin:/usr/sbin
Тогда не надо будет писать полные пути в командах.
Спасибо Вам! Для новичка очень полезно столь доходчивое объяснение. :good: