Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как в постгресе выполнить команду ОС ? / 16 сообщений из 16, страница 1 из 1
16.10.2017, 15:31
    #39536938
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
Добрый день.


Нужно получить список файлов в директории и занести этот список в табличку.



Подскажите, как это можно сделать?


ОС Виндоус.


По сути мне надо просто команду dir как-то выполнить.
...
Рейтинг: 0 / 0
16.10.2017, 15:33
    #39536941
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
аналог xp_cmdshell (мс) нужен.
...
Рейтинг: 0 / 0
16.10.2017, 15:49
    #39536958
ursido
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
queezy relax,

На самом деле Вам нужно что-то другое.

На Ваш вопрос читайте RTFM: https://www.postgresql.org/docs/9.6/static/functions-admin.html#FUNCTIONS-ADMIN-GENFILE

а именно функцию pg_ls_dir.

Обратите внимание на права на каталог.
...
Рейтинг: 0 / 0
16.10.2017, 15:54
    #39536961
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
ursidoqueezy relax,

На самом деле Вам нужно что-то другое.

На Ваш вопрос читайте RTFM: https://www.postgresql.org/docs/9.6/static/functions-admin.html#FUNCTIONS-ADMIN-GENFILE

а именно функцию pg_ls_dir.

Обратите внимание на права на каталог.


ВАУ СУПЕР!!!!
...
Рейтинг: 0 / 0
16.10.2017, 15:56
    #39536963
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
ursido,

а скажите, можно ли прочитать директорию с другого диска, отличного от того где pg_data ?
...
Рейтинг: 0 / 0
16.10.2017, 16:01
    #39536966
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
или хотя бы выше подняться по каталогу. У меня только pg_data показывает и все что ниже
...
Рейтинг: 0 / 0
16.10.2017, 16:43
    #39536990
ursido
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
queezy relaxursido,

а скажите, можно ли прочитать директорию с другого диска, отличного от того где pg_data ?

Внимательно читайте RTFM. Там написано, что нельзя.

Обычно СУБД не лазит в файлы. Чаще всего это дело приложения. Создайте скрипт на Вашем любимом языке.
...
Рейтинг: 0 / 0
16.10.2017, 17:11
    #39537026
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
ursidoqueezy relaxursido,

а скажите, можно ли прочитать директорию с другого диска, отличного от того где pg_data ?

Внимательно читайте RTFM. Там написано, что нельзя.

Обычно СУБД не лазит в файлы. Чаще всего это дело приложения. Создайте скрипт на Вашем любимом языке.


Очень жаль
...
Рейтинг: 0 / 0
16.10.2017, 17:30
    #39537033
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
queezy relax,

м?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
pgbench=# create table t1 (payload text);
CREATE TABLE
pgbench=# copy t1 from program 'ls -l /tmp';
COPY 34
pgbench=# select count(*) from t1;
 count 
-------
    34
...
Рейтинг: 0 / 0
16.10.2017, 17:54
    #39537043
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
daevyqueezy relax,

м?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
pgbench=# create table t1 (payload text);
CREATE TABLE
pgbench=# copy t1 from program 'ls -l /tmp';
COPY 34
pgbench=# select count(*) from t1;
 count 
-------
    34



Спасибо, так работает с любым диском!
...
Рейтинг: 0 / 0
17.10.2017, 14:01
    #39537490
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
Осталось только команду заменить на 'rm -rf'.
...
Рейтинг: 0 / 0
13.03.2018, 18:53
    #39614327
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
Подниму тему.




Не получается выполнить вот такую команду на постгрес с ОС виндоус:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
--так не выполняется
copy t1 from program 'systeminfo | find /I "памяти"';

ОШИБКА:  сбой программы "systeminfo | find /I "памяти""
DETAIL:  дочерний процесс завершился с кодом возврата 1
********** Ошибка **********

ОШИБКА: сбой программы "systeminfo | find /I "памяти""
SQL-состояние: XX000


--так тоже не выполняется
copy t1 from program 'systeminfo';


ОШИБКА:  неверная последовательность байт для кодировки "UTF8": 0xff
CONTEXT:  COPY t1, строка 26
********** Ошибка **********

ОШИБКА: неверная последовательность байт для кодировки "UTF8": 0xff
SQL-состояние: 22021






Подскажите пожалуйста как выполнить команду systeminfo.
...
Рейтинг: 0 / 0
13.03.2018, 18:54
    #39614328
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
Или возможно как-то запросом выяснить сколько ОЗУ на сервере установленно?
...
Рейтинг: 0 / 0
13.03.2018, 23:14
    #39614447
kira ivanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
queezy relax,

права пользователю, под которым крутится postgresql дайте и творите - чего хотите.....
...
Рейтинг: 0 / 0
14.03.2018, 10:03
    #39614561
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
kira ivanovqueezy relax,

права пользователю, под которым крутится postgresql дайте и творите - чего хотите.....


А как творить что хочешь?


Постгрес запущен под LocalSystem. (виндоус)
...
Рейтинг: 0 / 0
14.03.2018, 11:56
    #39614646
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в постгресе выполнить команду ОС ?
Решиб сделать по-другому:


Код: sql
1.
2.
3.
4.
5.
copy t1 from program 'wmic COMPUTERSYSTEM get TotalPhysicalMemory | more +1 ';

ОШИБКА: в данных обнаружен явный символ новой строки
SQL-состояние: 22P04
Подсказка: Представьте символ новой строки как "\n".




Как я понял, строка содержит в конце перевод на другую строку. (10+13)


Как сделать чтобы postrges смог это вставить в табличку?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как в постгресе выполнить команду ОС ? / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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