Пост-ГРЭС: пройдите проверку подлинности как пользователь пост-ГРЭС в неинтерактивном сценарии

hist команда является оболочкой Korn (ksh93) встроенный, и не доступна в ударе.

Ваш сценарий (сценарии), кажется, работает под ударом, не ksh.

ksh$ command -V hist
hist is a shell builtin   

bash$ command -V hist
bash: command: hist: not found

Попробуйте следующее:

$ ksh myScript -s test -u test2

или:

$ SHELL=ksh ksh myScript -s test -u test2

Однако hist команда, это обычно используется только в интерактивном режиме, и я не ожидал бы это в сценарии. Это редко вызывается непосредственно, и чаще как один из следующих псевдонимов:

$ alias | grep hist
fc=hist
history='hist -l'
r='hist -s'        

Ищите любой из fc, history, r.

2
22.04.2014, 20:40
3 ответа

Есть два способа сделать то же самое.

Подход 1:

Добавьте файл .pgpass в домашний каталог пользователя (пользователя, который запускает скрипт):

$ cat /home/user/.pgpass
hostname:port:database:user:password
$ chmod 600 /home/user/.pgpass

После добавления вышеуказанного вам не нужно добавлять пароль ни в какие скрипт, который вы используете. Он будет подключаться напрямую.

Подход 2:

Добавьте следующее в сценарий оболочки. Но это раскроет ваш пароль и станет проблемой, если вы совершите фиксацию в каком-либо репозитории.

export PGPASSWORD=password
2
27.01.2020, 21:52

Используйте переменную окружения PGPASSWORD. Например:

PGPASSWORD=<password> psql -U postgres -c "<postgresql query>"

Source

4
27.01.2020, 21:52

Если вы можете запустить psql от имени пользователя postgres, наиболее полезным решением является изменение pg_hba.conf, чтобы пользовательский postgres Unix, подключающийся через localhost / socket, аутентифицировался без какого-либо пароля для внешнего файла. В конце файла вставьте следующее:

local all postgres  peer

Это значение TBMI по умолчанию. Возможно, кто-то подумал, что они были умными или более безопасными, когда удалили эту строку, идиот. Вы также можете использовать что-то вроде этого для службы мониторинга:

local zabbix zabbix peer

, для которой вы создаете имя пользователя и базу данных с именем «zabbix».

1
27.01.2020, 21:52

Теги

Похожие вопросы