Возможность использования скриптов на сервере

Started by Alex, August 09, 2007, 10:50:28 AM

Previous topic - Next topic

isherim

У меня вот тоже проблемка - скрипт нормально отрабатывает, на stdout выдает данные, но в DCI пусто - ничего не приходит. Т.е. так и стоит с датой 1970 года. Сделано все аналогично.

Alex

Проверяй формат ответа с DCI. Возможно у тебя параметры Data Type не верны. Покажи вывод скрипта сюда, и параметры DCI-я.

isherim

да там параметры на выходе 1 или 0
Parameter e1_ms(10.159.20.194)
добавлен proxy node
proxy добавлен в trusted
Origin Agent
Data type Integer

ExternalParameter = e1_ms(*):/bin/sh /usr/local/sbin/e1_ms.sh $1

Alex

Daty Type какой?
Пробовал сделать правило активным?
А в nxagentd.conf добавил MasterServers??

isherim

Правило активно
В конфиге все прописано


isherim

ничего такого особенного вроде не говорит
Debug: {1} Received message CMD_GET_PARAMETER
[03-Apr-2008 15:34:57] Debug: {1} Requesting parameter "e1_ms(10.159.20.194)"
[03-Apr-2008 15:34:59] Debug: {1} Sending message CMD_REQUEST_COMPLETED
[03-Apr-2008 15:34:59] Debug: {1} Session with 10.159.100.55 closed


Alex

А должно быть что-то вроде этого

[26-Feb-2008 13:21:36] DEBUG: Node(monitor-2)->GetItemFromAgent(SipOrig(my_ip)): dwError=0 dwResult=0

isherim

чего-то действительно с выводом данных из скрипта... в $1 значений просто нет.

Alex

Символ "перевода строки" в конце вывода есть?

isherim

срабатывает только вариант с записью полученного значения в файл кроном и потом выводом в dci. В одном скрипте echo cразу из переменной в dci не берется.

Alex

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

isherim

/bin/ping -c 5 $1 &>/dev/null
if [ $? -ne 0 ]; then
echo "0"
else
echo "1"
fi;
все предельно просто вроде бы

Alex

Я нашел ошибку вывода...
Вот вывод Вашего скрипта


PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.032 ms
1

Как видишь под условия integer это не подходит.

Вот вывод моего скрипта:

Quote
host#./ping.sh
1
host#

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

/bin/ping -c 5 $1 >/dev/null
if [ $? -ne 0 ]; then
echo "0"
else
echo "1"
fi;


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

isherim

на самом деле вывод с & и без совершенно одинаковый(по крайней мере в линухе) - одна цифра. Без & результат тот же - в dci пусто.