powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Nagios + check_oracle_instant
13 сообщений из 38, страница 2 из 2
Nagios + check_oracle_instant
    #36672842
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

Ступил. Почитал про open. Как раз там пайп нужен. Извиняюсь.

Тогда для начала действительно потренируйтесь "на кошках", с выводом гарантировано работающей команды (типа ls). М.б. пайп не отрабатывает как надо.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672892
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

nagios@nagios:~$ sqlplus -s system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP)(Port=1521))(CONNECT_DATA=(SID=sid))) |
>
>
> ^C
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672896
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Не увидел вашего последнего сообщения, понял, потренируюсь.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672953
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questioner,

Попробовал на
open (LS,"id</dev/null
|") or die;
while ( my $res = <LS> )
{
print $res;
}

выдал верный результат.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36673144
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

Интересно посмотреть, что отдаётся на выполнение при этом open. Возможно приколы со скобками, как вариант пробовать с явным tnsname.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36673417
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

в коде
$qu="sqlplus system/mismatch\\@\\(DESCRIPTION=\\(ADDRESS=\\(PROTOCOL=TCP\\)\\(Host=$host\\)\\(Port=$port\\)\\)\\(CONNECT_DATA=\\(SID=$sid\\)\\)\\) </dev/null \\|";
print $qu;
open (SQL,$qu) or die;

выдаёт
sqlplus system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=host)(Port=1521))(CONNECT_DATA=(SID=sid))) </dev/null

вопрос только с | никак не выдаёт его
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36673470
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

Пробел после пайпа добавлять пробовали?
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36673524
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

пробовал :(
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36673605
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
sub logon {
open (SQL,"sqlplus -s system/mismatch@\\(DESCRIPTION=\\(ADDRESS=\\(PROTOCOL=TCP\\)\\(Host=$host\\)\\(Port=$port\\)\\)\\(CONNECT_DATA=\\(SID=$sid\\)\\)\\)</dev/null|") or die;
while ( my $res = <SQL> )
{
print "Pipe or not to pipe, that is the question?";
if ($res =~ /^(ORA-\d{ 5 })/) {return $ 1 ;}
}
}
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36673689
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

sub logon {
print "111";
open (SQL,"sqlplus -s system/mismatch@\\(DESCRIPTION=\\(ADDRESS=\\(PROTOCOL=TCP\\)\\(Host=$host\\)\\(Port=$port\\)\\)\\(CONNECT_DATA=\\(SID=$sid\\)\\)\\)</dev/null|") or die;
print "222";
while ( my $res = <SQL> )
{
print "Pipe or not to pipe, that is the question?";
if ($res =~ /^(ORA-\d{5})/) {return $1;}
}
print "444";
}

Вывод: 111222444Unable to connect to sid ORACLE !!!
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36673808
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

и в принт выдаёт всё также без пайпа?
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36676923
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

да
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36677112
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

В итоге проблема решилась так:
обернул perl-скрипт bash-ом

#!/bin/bash
#
# Copyright (c) 2004 by Alpha Integrator
# All rights reserved.
#
# Simple adding login for Baan ERP
#

. /home/nagios/.profile
/usr/local/nagios/libexec/check_oracle_instant $1 $2 $3 $4 $5

Спасибо всем за помощь!
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Nagios + check_oracle_instant
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]