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

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
nitrokamera
ефрейтор
Сообщения: 53
Зарегистрирован: 2011-03-05 18:37:50

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

Непрочитанное сообщение nitrokamera » 2011-10-19 12:44:18

Всем здрасте!
Задача - организовать 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 отличаются, но как это исправить?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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/

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

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

Непрочитанное сообщение dmtr » 2011-10-19 13:38:36

а если пути полные прописать ко всем командам

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

/sbin/atacontrol
/usr/bin/grep
/bin/echo
/usr/sbin/sendmail
можно еще выводить $state в лог-файл какой-нить, проверять чего там нагрепалось
This game has no name. It will never be the same.

nitrokamera
ефрейтор
Сообщения: 53
Зарегистрирован: 2011-03-05 18:37:50

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

Непрочитанное сообщение nitrokamera » 2011-10-19 13:46:49

dmtr писал(а):а если пути полные прописать ко всем командам

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

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

mak_v_
проходил мимо

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

Непрочитанное сообщение mak_v_ » 2011-10-19 13:53:23

переменными окружения

spf
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-11-05 15:28:46

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

Непрочитанное сообщение spf » 2011-10-20 8:03:21

Через команду

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

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

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

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

nitrokamera
ефрейтор
Сообщения: 53
Зарегистрирован: 2011-03-05 18:37:50

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

Непрочитанное сообщение nitrokamera » 2011-10-22 17:34:47

spf писал(а):Через команду

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

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

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

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