Se o seu web site PHP Apache funciona com peer
, mantenha isso, e vamos lidar com isso.
1. Primeiro método:
Como a autenticação é baseada em pares, você precisa especificar o nome do host (geralmente localhost) usando -h
option:
ssh server "pg_dump -h localhost -U postgres | gzip -c" >/backup/sqlbackup.sql.gz
O principal problema aqui é que você será solicitado a fornecer a senha do usuário postgres. É um problema para a automação de backups.
Você pode consultar este para evitar que seja solicitada a senha. Mas vou descrever:
- Crie um arquivo oculto chamado
.pgpass
in$HOME
- Executar um
chmod 600 .pgpass
- Edite o arquivo
.pgpass
e adicione esta linha:localhost:5432:postgres:postgres:password
2. Segundo método:
Você pode adicionar uma função específica a backups e confiar nela.
Crie a função de backup no Postgres:
CREATE ROLE backup WITH LOGIN SUPERUSER PASSWORD 'password'
Edite o arquivo pg_hba.conf
, adicione o papel backup
e trust
it:
# Database administrative login by Unix domain socket
local all postgres peer
local all backup trust
Reinicie o postgresql
Em seguida, você poderá executar o backup com o seguinte:
ssh server "pg_dump -U backup postgres | gzip -c" >/backup/sqlbackup.sql.gz