1.设置账户密码,否则在备份时需要输入密码。设置密码变量可以做到无人职守。
export PGPASSWORD=密码
2.备份
/opt/PostgreSQL/9.0/bin/pg_dump -U 用户名 数据库名 >> 备份文件名

一个示例脚本,脚本名称pgbak.sh:

#!/bin/sh
pg_db_bak_path=/bak/database
cur_dir=$pg_db_bak_path/`date +%Y-%m`
mkdir -p $cur_dir
PGPASSWORD=postgres
/opt/PostgreSQL/9.0/bin/pg_dump -h localhost -p 5432 -U postgres -W -F c -b -v -f $cur_dir/$1_`date +%Y-%m-%d_%H-%M-%S`.pgbak $1

执行备份:
pgbak.sh 数据库名称