Я использую приведенный ниже скрипт для обнаружения табличного пространства и сведений о заданиях для конкретного DSN, но если я передаю несколько DSN из массива, он не работает, так как он не попадает под один элемент JSON root, а несколько root элементов. Кто-нибудь может мне помочь исправить это
#!/usr/bin/php
<?php
if(!isset($argv[1]) && !isset($argv[2])) exit("ZBX_NOTSUPPORTED");
$argv[1] = (explode("|", $argv[1] ));
foreach ($argv[1] as $value) {
$arry['data'][]=array('{#DSN}'=>"$value",);
$connected_dsn = odbc_connect($value,"","");
if(!$connected_dsn) exit('SQL connection erorr | ZBX_NOTSUPPORTED');
switch ($argv[2]) {
case "tablespaces":
$result=odbc_exec($connected_dsn,"SELECT tablespace_name FROM dba_tablespaces;");
$tablespaces = array("data"=>array());
while(odbc_fetch_row($result)){
$tablespaces['data'][]=array('{#TBSNAME}'=>odbc_result($result,1),'{#DSN}'=>$value);
}
echo json_encode($tablespaces);
break;
case "jobs":
$result=odbc_exec($connected_dsn,"SELECT job_name, owner FROM dba_scheduler_jobs WHERE state != 'DISABLED';");
$jobs = array("data"=>array());
while(odbc_fetch_row($result)){
$jobs['data'][]=array(
'{#JOBNAME}'=>odbc_result($result,1),
'{#JOBOWNER}'=>odbc_result($result,2));
}
echo json_encode($jobs);
# break;
}
#exit();
}
?>
[root@tets_server externalscripts]# ./test_oracle.odbc.discovery "KCEPCPRDDB1V-EPCPRDDB|KCEPCPRDDB1V-EPCPVMDB" tablespaces
{"data":[{"{#TBSNAME}":"SYSTEM"},{"{#TBSNAME}":"SYSAUX"},{"{#TBSNAME}":"UNDOTBS1"},{"{#TBSNAME}":"TEMP"},{"{#TBSNAME}":"XDB"},{"{#TBSNAME}":"USERS"},{"{#TBSNAME}":"STATSPACK_DATA"},{"{#TBSNAME}":"SCPODATA"},{"{#TBSNAME}":"WWFDATA"},{"{#TBSNAME}":"IGPDATA"},{"{#TBSNAME}":"EMADATA"},{"{#TBSNAME}":"CRNDATA"},{"{#TBSNAME}":"BATCHDATA"},{"{#TBSNAME}":"NTWKSDATA"},{"{#TBSNAME}":"NWMDATA"},{"{#TBSNAME}":"COMMUSR"},{"{#TBSNAME}":"BATCHJOB"},{"{#TBSNAME}":"REPORTSDATA"}]}{"data":[{"{#TBSNAME}":"SYSTEM"},{"{#TBSNAME}":"SYSAUX"},{"{#TBSNAME}":"UNDOTBS1"},{"{#TBSNAME}":"TEMP"},{"{#TBSNAME}":"XDB"},{"{#TBSNAME}":"USERS"},{"{#TBSNAME}":"STATSPACK_DATA"},{"{#TBSNAME}":"SCPODATA"},{"{#TBSNAME}":"WWFDATA"},{"{#TBSNAME}":"IGPDATA"},{"{#TBSNAME}":"EMADATA"},{"{#TBSNAME}":"CRNDATA"},{"{#TBSNAME}":"BATCHDATA"},{"{#TBSNAME}":"COMMUSR"},{"{#TBSNAME}":"NTWKSDATA"},{"{#TBSNAME}":"BATCHJOB"}]}
> [root@ets_server externalscripts]#