|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
Знающий народ - здравствуйте! Подскажите пожалуйста в чём беда и как вообще правильно выглядит запись вызова функции или любой другой команды к бд psql через CRON. Везде включая форум пишут по разному. Пробовала всяко, ошибка одна и та же: (CRON) info (No MTA installed, discarding output) На данный момент запись в crontab от пользователя postgres выглядит так (взяла отсюда http://www.sql.ru/forum/483259/planirovshhik-dlya-postgres): 30 14 * * * psql -c 'select my_func();' и как здесь http://www.sql.ru/forum/338956/cron через двойные кавычки тоже пыталась. и полное имя писала 'select mybd.public.my_func(); и просто запросами...всё никак. Пыталась прописывать шапку SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin в файле crontab поскольку по умолчанию она не создалась. Всё бесполезно. В функции всё просто пару пару простейших updateов. и она работает. что где не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 13:12 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Ladyошибка одна и та же: (CRON) info (No MTA installed, discarding output) А это не ошибка вообще. cron любой stdout и stderr от задач хочет передавать почтовому MTA для информирования причастных. У вас MTA не установлен никакой и соответствующая заметка об отбрасывании вывода задачи, т.к. отправлять его некуда. Перенаправьте вывод команды в какой-нибудь файл чтобы посмотреть что пишет команда. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 13:32 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
Melkij, Я знаю что это не ошибка, однако и cron не срабатывает. я в Linux как и в postgreSQL 2 дня. Да и после выполения данной задачки с этим работать не буду. Поэтому прошу вас более конкретно напишите пожалуйста что надо сделать? как перенаправить вывод команды в файл? можно пример? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 13:49 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
Melkij, Подскажите, синтаксис самой записи вообще правильный? Допустим такая запись сработает: * 06 * * * psql -c 'DELETE FROM my_table;' ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 13:58 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
Команда может не выполняться, если не установлено переменное окружение. Он просто может не знать где брать psql Вызывайте в кроне скрипт .sh , а в нем уже пропишите переменное окружение и команду, типа такого: #!/bin/bash PATH=$PATH:$HOME/bin:/opt/rh/rh-postgresql95/root/usr/bin LD_LIBRARY_PATH=/opt/rh/rh-postgresql95/root/usr/lib64 export LD_LIBRARY_PATH export PATH psql -c "select 1" В кронтаб: 30 13 * * * /opt/script/script.sh > /dev/null 2>&1 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 14:12 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
gav21PATH=$PATH:$HOME/bin:/opt/rh/rh-postgresql95/root/usr/bin LD_LIBRARY_PATH=/opt/rh/rh-postgresql95/root/usr/lib64 простите за возможно глупый вопрос, но в строках выше Вы пишите /root/usr... а мой crontab работает от юзера postgres. Оно так сработает? или надо для тестирования, приведённый вами скрипт запустить как crontab от root? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 06:38 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Lady, Какой результат возвращает функция? Можете сделать скрипт в файле my_funk.sh. - https://habrahabr.ru/company/ruvds/blog/325522/ Если он выдает требуемый результат, добавляйте его в крон. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 12:14 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
ncux199rus, авторКакой результат возвращает функция? Смысл в том что мне не нужен возврат результата. Мне нужно было сделать несколько независимых последовательных запроса: 2 - Deleta, 2 - COPY from .csv, 1 insert и 2- update. Ввиду отсутствия в СУБД инструмента - хранимая процедура, решила для краткости записать в функцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 12:37 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Lady, В качестве примера: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Файл скрипта для вашего случая примерно такой: Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 13:57 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
ncux199rus, Сделала всё как Вы написали. С select now() в файле test_now символ #. текущее время отсутствует... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 08:23 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Lady, из командной строки вызываются команды psql? вроде: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 11:39 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
ncux199rus, что значит запись автор-bash-4.2$ запуск полностью этой команды даёт результат: -bash: -bash-4.2$: command not found запуск от пользователя авторpostgres@server:/root$ psql -c "select now();" даёт результат сначала запись авторcould not change directory to "/root": Permission denied а следующей строкой возвращает время. запуск от пользователя root@server~#psql -c "select now();" даёт результат psql: FATAL: role "root" does not exist ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 07:23 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Lady, для запуска нужно перейти под пользователя postgres командой Код: sql 1.
далее выполнить команду Код: sql 1.
если она возвращает Код: sql 1. 2. 3. 4.
то можно приступать к формированию крипта. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 09:33 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
ncux199rus, при формировании скрипта "Permission denied". Ну это админы сейчас посмотрят И снова попробую. А подскажите ещё пожалуйста, как в консоли правильно подать имя таблицы? psql -c "DELETE FROM my_tbl;" даёт ошибку relation "my_tbl" does not exist. public.my_tbl ошибка та же пробовала как в MSSQL: DB.dbo.my_tbl, ошибка cross-database references are not implemented пробовала как в pgadmin: DB.public.my_tbl, ошибка та же. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 12:51 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Ladyncux199rus, при формировании скрипта "Permission denied". Ну это админы сейчас посмотрят И снова попробую. А подскажите ещё пожалуйста, как в консоли правильно подать имя таблицы? psql -c "DELETE FROM my_tbl;" даёт ошибку relation "my_tbl" does not exist. public.my_tbl ошибка та же пробовала как в MSSQL: DB.dbo.my_tbl, ошибка cross-database references are not implemented пробовала как в pgadmin: DB.public.my_tbl, ошибка та же. А имя базы то кто указывать будет (в коммандной строке)? Или у вас таблица в базе postgres? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 14:12 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
Maxim Boguk, вот я и спрашиваю синтаксис как верно указать? допустим имя базы "DB", схема "public", имя таблицы "my_tbl" в MS SQL полное имя выглядело бы как DB.dbo.my_tbl в postgre это не работает. На вообще форумах про кавычки пишут. psql требует вне запроса указать имя базы. Инфы не много, везде пишут по разному. По-моему пародия, а не СУБД (субъективно)... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 14:43 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_LadyMaxim Boguk, /// . По-моему пародия, а не СУБД (субъективно)... бгггг. за что вас таких, поротий, на роботе держад ? (и как часто) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 15:25 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_LadyMaxim Boguk, вот я и спрашиваю синтаксис как верно указать? допустим имя базы "DB", схема "public", имя таблицы "my_tbl" в MS SQL полное имя выглядело бы как DB.dbo.my_tbl в postgre это не работает. На вообще форумах про кавычки пишут. psql требует вне запроса указать имя базы. Инфы не много, везде пишут по разному. По-моему пародия, а не СУБД (субъективно)... С такими заходами и претензиями обращайтесь в платную поддержку Postgresql. Там что угодно за ваши деньги вплоть до чтения официальной документации в слух. PS: вы документацию по psql пробовали прочесть? или psql --help сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 16:02 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
Maxim Boguk, Вы кажется модератор форума, однако изначально спрашивая о правильности написания синтаксиса, предварительно пересмотрев кучу документации и различных ссылок, понимая что вопрос жутко глупый, задача тривиальна, я указала 2 ссылки на Ваш форум, и как выяснилось ни там ни там не верно. Ребят, для Вас, кто профессионал, но с этим бесплатным г...субд не работал, может кому пригодится. Как выяснилось верная запись это так: автор 30 14 * * * psql -d myDB -c "delete from myTBL;" Во всяком случае у меня CRON сработал, однако первоначальное предупреждение о MTA не пропало. PS: Кто бы сомневался, что Вы не сможете обойтись без оценочных суждений моих интеллектуальных способностей, делая выводы основываясь на полутора сообщениях о так любимом Вам ПО. На форумах без таких никуда... Банально! Именно из-за таких как Вы 70% людей ненавидят форумы... Поскольку, с уважением, извинениями, прося помощи у старших-опытных коллег, получают оскорбления. Самый распространённый вопрос, который дабы выставить себя "Богом" может написать чуть не каждый имбицыл: авторPS: вы документацию пробовали прочесть? за что вас таких, на роботе держад? Документация кривая, субд тоже, как минимум основываюсь на работе с текстовыми типами и их функциями, кривым преобразованиям типов, особенно даты\времени, вне стандарта придуманными функциями и т.д. Ваше мнение о моих профессиональных навыках - не интересно. Сидите, ковыряйте своё бесплатное Г... За помощь ОГРОМНОЕ спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 06:55 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Lady, ми тут долго ждали, когда жи ви осилите export; cron и командную строку молчали, крепились, ага но тут ви полезли на пж как на буфет типа он вам виноват, что вы ни доку не читаете ни man ни --help набрать не можете а туда же форум ей виноват, ага зы за навыки поиска по хоруму ++, за навыки осмысления прочитанного -- ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 08:27 |
|
Вызов функции psql в CRON
|
|||
---|---|---|---|
#18+
s_Lady, https://postgrespro.ru/docs/postgresql/10/app-psql Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 10:13 |
|
|
start [/forum/topic.php?fid=53&fpage=57&tid=1995838]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 414ms |
0 / 0 |