pg_dumpall без запроса пароля

Мы пытаемся автоматизировать резервное копирование всех баз данных PostgreSQL кластера, и мы решили использовать утилиту pg_dumpall. Но мы не смогли найти способ выполнить pg_dumpall без запроса пароля. Мы используем PostgreSQL-10.

Мы пытаемся выполнить следующую команду

pg_dumpall -U "username" -h "hostname" > "location"

Как мы можем автоматизировать pg_dumpall без запроса пароля? Пожалуйста, помогите нам в этом. Спасибо

1 ответ

Я отвечаю на свой вопрос

мы можем использовать файл ".pgpass", чтобы избежать запроса пароля

"СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ФАЙЛА.PGPASS

=====================================

Файл.pgpass позволит вам использовать инструменты CLI postgres, такие как psql и pg_dump, без необходимости вручную вводить пароль. Вы можете использовать программы из сценариев, не запуская их как незащищенный паролем пользователь.

Сначала создайте файл.pgpass.

#nano /root/.pgpass 

Согласно официальной документации формат файла выглядит следующим образом:

hostname:port:database:username:password

Файл поддерживает использование тегов # для комментариев и * для сопоставления с подстановочными знаками. Вот мой пример:

*:*:*:postgres:jerry_pass 

Введите информацию о вашей базе данных и сохраните.

Далее установите разрешения. Если их не 600, Postgres проигнорирует файл.

#chmod 600 /root/.pgpass

Теперь, как нам заставить Postgres использовать его? Быстрое сканирование через справочную страницу psql показывает:

-w, --no-password 

Никогда не вводите запрос пароля. Если серверу требуется аутентификация по паролю, а пароль недоступен другими способами, такими как файл.pgpass, попытка подключения завершится неудачно. Эта опция может быть полезна в пакетных заданиях и сценариях, где нет ни одного пользователя для ввода пароля.

Вот несколько примеров использования:

#psql -d postgres -U postgres -w
#pg_dump -U postgres -w -Fc   "
Другие вопросы по тегам