LINUX.ORG.RU
ФорумAdmin

Проблема с /dev/tcp в задании скрипта по cron


0

0

ОС: Solaris 9

есть такой вот скрипт:

# cat mail.sh
#/usr/bin/bash

TCP_HOST=172.16.10.20
TCP_PORT=25
NET_DEV=/dev/tcp

MAIL_FROM="root@sol1"
RCPT_TO="admin@d1.ru"
SUBJ="Report from sol1"

{ echo "HELO"; sleep 1;
echo "MAIL FROM: $MAIL_FROM"; sleep 1;
echo "RCPT TO: $RCPT_TO"; sleep 1;
echo "DATA"; sleep 1;
echo "From: $MAIL_FROM <$MAIL_FROM>"; sleep 1;
echo "To: $RCPT_TO <$RCPT_TO>"; sleep 1;
echo "Subject: $SUBJ"; sleep 1;
echo "Report:"; sleep 1;

metastat; sleep 1;

echo "."; sleep 1;
echo "QUIT";
} > $NET_DEV/${TCP_HOST}/${TCP_PORT}

когда я его запускаю из своего сеанса, т.е. в своем шелл, то скрипт отрабатывает без проблем, почта шлется. Когда я запихиваю его в cron, то получаю на рутовую почту следующее письмо:

Your "cron" job on sol1
/export/home/scripts/mail.sh

produced the following output:

/export/home/scripts/mail.sh: /dev/tcp/172.16.10.20/25: cannot create

я знаю, что в cron нету своих переменных среды, поэтому я пробовал добавлять в скрипт все переменные которые были в моем сеансе:

PWD=/export/home/scripts
TZ=Europe/Moscow
HZ=
HOSTNAME=sol1
MACHTYPE=sparc-sun-solaris2.9
MAIL=/var/mail/root
OLDPWD=/var/cron
EDITOR=vi
LOGNAME=root
SHLVL=1
SHELL=/sbin/sh
HOSTTYPE=sparc
OSTYPE=solaris2.9
HOME=/
TERM=xterm
PATH=/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/bin:/usr/ucb:/opt/sfw/gcc- 3/bin
_=/usr/bin/env

и это тоже не помогло.

Почему не срабатывает скрипт по крону?

спасибо заранее!

anonymous

Может по простому, отдать локальному сендмайлу через mailx или

> } > $NET_DEV/${TCP_HOST}/${TCP_PORT}

} | netcat ${TCP_HOST} ${TCP_PORT}

sdio ★★★★★
()
Ответ на: комментарий от sdio

netcat нету в solaris, а ставить gnuтый не особо хочется. Хочется разобраться в чем проблема. Если бы скрипт вообще не работал, то вопросов бы не было, а ведь под сеансом пользователя он же работает!

Просто хочется найти решени проблемы.

Но всё равно спасибо за совет :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.