Задание Cron не может установить соединение с базой данных postgresql

Задание Cron не может установить соединение с базой данных postgresql

05.02.2020 12:07:09 Просмотров 5 Источник

Я попытался запустить задание cron с помощью следующего сценария оболочки.

#!/bin/bash

PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

gsutil cp gs://api-bucket/order_status.csv order_status.csv

psql -d  apidb -U apidb  << EOF

DELETE FROM apidbgermany.order_status;
\copy apidb.order_status from '/u01/app/postgres/data/silver01/order_status.csv'  delimiter ',' CSV ;
EOF

Мой приятель выглядит вот так.

* * * * * /u01/app/postgres/data/silver01/order_status.sh &>/tmp/mycommand.log

getting following error

Но если я выполняю файл оболочки вручную в командной строке, он отлично работает.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database#comment106244100_60072333
это местный крон или удаленный ? и можете ли вы поделиться ошибкой задания.
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database#comment106244141_60072333
@RajVerma он находится в удаленном Linux-сервере . Я поделился ошибкой в изображении
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database#comment106244285_60072333
проверьте ответ ниже и попробуйте расширение, которое я упомянул.

Ответы - Задание Cron не может установить соединение с базой данных postgresql / Cron job not able to establish connection with postgresql database

Raj Verma

05.02.2020 12:20:49

Кроме того, пожалуйста, расширение пользователя pg_cron непосредственно, что решит эту проблему для вас. вы можете настроить кроны изнутри postgres. расширение pg_cron

https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072564#comment106244288_60072564
хорошо, вы имеете в виду, что я должен использовать pg_cron insde '[postgres@dapih1pgs62 silver01]' postgres правильно?
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072564#comment106244330_60072564
у doc есть все, просто следуйте инструкциям там, но вы должны установить это расширение, если это не является препятствием для вас.
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072564#comment106244380_60072564
ладно, я посмотрю. спасибо
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072564#comment106244704_60072564
на самом деле он запрашивает пароль postgres для установки этого, но я использовал 'su-postgres' до этого
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072564#comment106244877_60072564
следуйте за этим github.com/citusdata/pg_cron/issues/21 или просто следуйте" установка pg_cron " часть этого : github.com/citusdata/pg_cron
Является ответом!
Romeo Ninov

05.02.2020 12:44:49

Для доступа к удаленному серверу необходимо выполнить команду psqlследующим образом:

psql -h postgress_host -d  apidb -U apidb  << EOF
....

в противном psqlпытается подключить локальный сервер. И когда создать cron скриптов всегда используйте путь к исполняемым файлам

/usr/bin/psql ....

(например)

и добавьте в качестве второй строки вашего скрипта строку типа:

source ~/.bash_profile

или

source ~/.bashrc

зависит от того, где находятся параметры среды

https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072958#comment106245100_60072958
На самом деле моя cron работа в удаленном сервере, где установлен postgres. Не в моей местной машине
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072958#comment106245285_60072958
@PraveenkumarBeedanal, ок, но ошибка говорит, что скрипт не может подключиться к экземпляру. Вы выполнили cron как пользователь PostgreSQL?
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072958#comment106245508_60072958
я создал файл сценария оболочки внутри пользователя postgresql. Как я использовал sudo su, а затем su - postgres, и там я создал файл
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072958#comment106245551_60072958
@PraveenkumarBeedanal, это Постгреса, которые управляют хрон? И отредактирую свой ответ, чтобы добавить еще одну вещь
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072958#comment106245676_60072958
здесь хозяин postgres не местный?. Потому что он работает только в этой машине.
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072958#comment106245766_60072958
@PraveenkumarBeedanal, установите окружение и попробуйте без хоста.
https://stackoverflow.com/questions/60072333/cron-job-not-able-to-establish-connection-with-postgresql-database/60072958#comment106245901_60072958
это сработало, спасибо большое. я также добавил номер порта, потому что мой порт был 60901
Закрыть X