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 "