выполнение команды ОС на сервере БД
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
e.kha Участник со стажем
Вступление в Клуб: 26.04.2012
|
Вт Сен 24, 2013 09:08  выполнение команды ОС на сервере БД |
|
Полезность: Нет оценки
|
Добрый день!
В общем, ничего не предвещало беды, но тут встал вопрос - а возможно ли сие?
сервак стоит на линуксе, и на до из кода операций вызывать bash скрипты. |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Вт Сен 24, 2013 10:02  Re: выполнение команды ОС на сервере БД |
|
Полезность: 3
|
Да.
Примерчик:
Код: |
declare
root_dir const varchar2(200) := stdio.get_env('FIO_ROOT_DIR');
root_bin const varchar2(2000) := root_dir||slash||'bin';
sh_file const varchar2(2000) := 'script_zip.sh';
cmds const varchar2(2000) := root_bin || slash || sh_file ||' % % %';
begin
ret := stdio.run(cmds,
p_archive_path||p_archive_filename,
p_archive_path||file_arch_descr_name,
p_archive_path||file_arch_log_name,
null,null,null,null,null,null,null,false);
if ret != 0 then
pragma error('Ошибка запуска скрипта. Код ошибки '||to_char(ret));
end if;
end;
|
|
|
 |
e.kha Участник со стажем
Вступление в Клуб: 26.04.2012
|
Ср Сен 25, 2013 03:54  не получается, |
|
Полезность: Нет оценки
|
Код: | root_dir const varchar2(200) := stdio.get_env('FIO_ROOT_DIR');
root_bin const varchar2(2000) := root_dir || '/' || 'scripts';
sh_file const varchar2(2000) := 'test.sh';
cmds const varchar2(2000) := root_bin || '/' || sh_file;
ret integer;
begin
stdio.put_line_buf(root_dir);
stdio.put_line_buf(cmds);
ret := stdio.run(cmds, null, null, null, null, null, null, null, null, null, null, false);
stdio.put_line_buf('Результат ' || ret);
if ret != 0 then
pragma error('Ошибка запуска скрипта. Код ошибки '||to_char(ret));
end if;
end; |
Результат
Код: | /u/utlfile/testing/ibs
/u/utlfile/testing/ibs/scripts/test.sh
Результат -6512 |
Доступы все дал, захожу через консоль под пользователем с которого виден FIO, выполняю скрипт простой, все работает.
через операцию не хочет... |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Сен 25, 2013 04:14   |
|
Полезность: Нет оценки
|
Кажись дирректории выше FIO_ROOT_DIR он не пущает, попробуй скрипт в пределах этой дирректории. |
|
 |
e.kha Участник со стажем
Вступление в Клуб: 26.04.2012
|
Ср Сен 25, 2013 04:22   |
|
Полезность: Нет оценки
|
пробовал, не получается
Код: | /u/utlfile/testing/ibs
/u/utlfile/testing/ibs/test.sh
Результат -6512 |
|
|
 |
tsktalk Участник со стажем
Вступление в Клуб: 27.09.2007
|
Ср Сен 25, 2013 06:40   |
|
Полезность: Нет оценки
|
Alkov пишет: | Кажись дирректории выше FIO_ROOT_DIR он не пущает, попробуй скрипт в пределах этой дирректории. |
посмотрите настройка в профилях FIO_EXE_DIR
ну и фай лик в апгрейде тя (UPGR7311\TOOLS\FIO\fio.txt)
Цитата от туда
Описание настроек FIO (таблица profiles):
.....
Можно добавлять другие команды FIO в виде FIO_<Identifier>_CMD,
а также формировать переменные окружения внешнего процесса в виде
FIO_<Identifier>, значения этих переменных окружения будут доступны
при запуске shell-команд. К списку команд и переменных окружения
собственномго профиля добавляется список команд и переменных окружения
умолчательного профиля DEFAULT.
.... |
|
 |
e.kha Участник со стажем
Вступление в Клуб: 26.04.2012
|
Ср Сен 25, 2013 06:43   |
|
Полезность: Нет оценки
|
так вызываю
stdio.run(cmds, null, null, null, null, null, null, null, null, null, null, false);
т.е. без всяких интерпритаций команды, что есть то по факту запускается.
Тогда не надо синонимы FIO_..._CMD настраивать |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Сен 25, 2013 10:39   |
|
Полезность: 1
|
А если так в теле
res := stdio.run('FIO_SH',,,);
А в админе доступа в профиле запускающего пользователя
создать свойство FIO_SH = /u/utlfile/testing/ibs/test.sh |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Ср Сен 25, 2013 11:23   |
|
Полезность: 1
|
Alkov пишет: | А если так в теле
res := stdio.run('FIO_SH',,,);
А в админе доступа в профиле запускающего пользователя
создать свойство FIO_SH = /u/utlfile/testing/ibs/test.sh |
Только не FIO_SH, а FIO_SH_CMD. |
|
 |
e.kha Участник со стажем
Вступление в Клуб: 26.04.2012
|
Чт Сен 26, 2013 02:21   |
|
Полезность: Нет оценки
|
Господа, огромное спасибо!
через FIO_..._CMD
получилось. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|