RHEL5下postgresql自动备份(无须手动输入密码)

网上有很多方式,最后觉得采用密码文件的方式比较好。

1:在/home/postgres目录下创建.pgpass文件

内容如下:

localhost:5432:*:postgres:password

2:编写备份脚本

dbbackupcron.sh

#!/bin/sh
bak_dir="/home/backupfiles/db"
#date_dir=`date +%Y/%m/%d/%H` 
date_dir=`date +%Y/%m/%d` 
/bin/mkdir -p  ${bak_dir}/${date_dir} > /dev/null 2>&1 
su postgres -c "/usr/local/pgsql/bin/pg_dump ue_dev > ${bak_dir}/${date_dir}/"ue_dev.dump
cd ${bak_dir}/${date_dir}
tar czf ue_dev.tar ue_dev.dump
gzip ue_dev.tar
rm -rf ${bak_dir}/${date_dir}/ue_dev.dump

上面脚本在执行数据备份的时候是用的postgres用户,而不是root,所以bak_dir必须把权限设置为postgres。

给脚本设置执行权限(上来就777,我知道是臭毛病,恩~)

chmod 777 dbbackupcron.sh

3:用crontab设置定时执行

vi /etc/crontab

添加内容:

10 0 * * * root /home/cron/dbbackupcron.sh

上面脚本是每天00:10执行该脚本,可以根据时间和脚本放置位置自行修改上面的内容。

脚本写的比较稚嫩,但是可以达到效果,各位看客如果有更好希望也提供一下。

你可能感兴趣的:(RHEL5下postgresql自动备份(无须手动输入密码))