PostgreSQL备份WAL ShellScript

我需要做一个脚本来备份我的psql数据库,我想使用wal archive模式,而不是pg_dump。 我从我在网上find的脚本写下了这个:

#!/bin/bash #Test Script BackupSQL PG_SQL_CMD=/opt/novell/idm/Postgres/bin/psql PG_SQL_USER=postgres PG_SQL_DB=password PG_SQL_HOST=localhost PG_BACKUP_LABEL='backup_label' PG_BACKUP_START="$PG_SQL_CMD -U $PG_SQL_USER -h $PG_SQL_HOST -c \"select pg_start_backup('$PG_BACKUP_LABEL')\"" PG_BACKUP_STOP="$PG_SQL_CMD -U $PG_SQL_USER -h $PG_SQL_HOST -c \"select pg_stop_backup()\"" echo $PG_BACKUP_START eval $PG_BACKUP_START sleep 2 echo $PG_BACKUP_STOP eval $PG_BACKUP_STOP 

我的问题是:当我运行它的脚本提示我的psql密码。 我没有find一种方法来指定psql命令的密码,就像你可以在mysql中使用-p选项一样。

我怎样才能使脚本回答提示?

尝试使用.pgpass文件不必键入密码。
请参阅: http : //www.postgresql.org/docs/8.3/static/libpq-pgpass.html

或者你可以使用如下的shell语法:

  psql -h database.server.com -U username <<EOF sekritpassword EOF 

或者作为最后一个选项,您应该可以使用环境variablesPGUSER和PGPASSWD。

如果您的pg_hba.conf文件中有以下行,则不需要提供密码。 你只需要以postgres用户身份运行这个命令。

 local all all ident