Сценарий резервного копирования PostgreSQL не может получить доступ к .pgpass - PullRequest
0 голосов
/ 05 июня 2018

Я создал скрипт резервного копирования, который я хочу запустить в ночном задании cron, но всякий раз, когда я запускаю ./pg_backup.sh, мне предлагается указать пароль пользователя postgres, несмотря на тот факт, что у меня есть файл pgpass.config.,

Это мой pg_backup.config

##############################
## POSTGRESQL BACKUP CONFIG ##
##############################

# Optional system user to run backups as.  If the user the script is running as doesn't match this
# the script terminates.  Leave blank to skip check.
BACKUP_USER=

# Optional hostname to adhere to pg_hba policies.  Will default to "localhost" if none specified.
HOSTNAME=

# Optional username to connect to database as.  Will default to "postgres" if none specified.
USERNAME=

# This dir will be created if it doesn't exist.  This must be writable by the user the script is
# running as.
BACKUP_DIR=/var/lib/pgsql/9.6/backups/

# List of strings to match against in database name, separated by space or comma, for which we only
# wish to keep a backup of the schema, not the data. Any database names which contain any of these
# values will be considered candidates. (e.g. "system_log" will match "dev_system_log_2010-01")
SCHEMA_ONLY_LIST=""

# Will produce a custom-format backup if set to "yes"
ENABLE_CUSTOM_BACKUPS=no

# Will produce a gzipped plain-format backup if set to "yes"
ENABLE_PLAIN_BACKUPS=yes

# Will produce gzipped sql file containing the cluster globals, like users and passwords, if set to "yes"
ENABLE_GLOBALS_BACKUPS=no


#### SETTINGS FOR ROTATED BACKUPS ####

# Which day to take the weekly backup from (1-7 = Monday-Sunday)
DAY_OF_WEEK_TO_KEEP=6

# Number of days to keep daily backups
DAYS_TO_KEEP=5

# How many weeks to keep weekly backups
WEEKS_TO_KEEP=1

######################################

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

1 Ответ

0 голосов
/ 05 июня 2018

Самый простой способ решить эту проблему - запустить сценарий от имени пользователя postgres - обычного пользователя базы данных Postgres в большинстве Unices:

sudo -iu postgres /path/to/pg_backup.sh

Этот пользователь по умолчанию является суперпользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...