renxiao2003 发表于 2015-07-28 21:53

PostgreSQL自动备份脚本

前提是已经熟悉PostGreSQL的命令
1:bkpg.sh的内容:
#!/bin/bash
/usr/local/pgsql/bin/pg_dump -hlocalhost -p5431 -Ugroupware hitware>/data/back/hitware/`date +%Y-%m-%d-%T`.sql
/usr/local/pgsql/bin/pg_dump -hlocalhost -p5431 -Ugroupware stemsoft>/data/back/stemsoft/`date +%Y-%m-%d-%T`.sql
2:backpg.sh的内容:
#!/usr/bin/expect
#Description:The Scrpit is auto backup the postgresql database at 8:00 PM       #            every day
#Author:wang.changchun@stemsoft
#Date:2008-12-10
set passwd "12345678"
spawn ~/bin/bkpg.sh;
expect "*Password:";
sleep 0.1;
send "$passwd\r";
expect "*Password:";
sleep 0.1;
send "$passwd\r";
#等待60秒(1分钟);如果不等待,只生成文件,而导出动作没有时间执行。
sleep 60;
#back hitware
#spawn "/usr/local/pgsql/bin/pg_dump -h localhost -p 5431 -U groupware hitware > /data/back/`date +%Y-%m-%d-%T`.sql ";
#expect "*Password:";
#sleep 1;
#send "$passwd\r";
把上面的两个文件存到PostGreSQL用户的bin目录下,赋予执行权限。
然后用crontab -e添加到用户的定时任务就可以了。

stay_sun 发表于 2015-12-22 22:57

为啥 不用物理备份

renxiao2003 发表于 2015-12-23 12:20

没有条件 。回复 2# stay_sun


   

fender0107401 发表于 2015-12-31 10:14

我也写了自动备份脚本,不过是用Perl和Perl的Expect模块写的。

renxiao2003 发表于 2016-01-01 20:25

回复 4# fender0107401


    哥们,分享出来吧。PG版太不活跃了。

fender0107401 发表于 2016-01-05 10:20

回复 5# renxiao2003

传送门:http://bbs.chinaunix.net/thread-4232554-1-1.html


   

li0924 发表于 2016-08-03 11:22

postgresql的热备脚本;##===========================================================
##   pg_hot_back.sh               
##   created by lottu         
##   2016/02/07   
##   usage: pg_hot_back.sh                           
##============================================================
#!/bin/bash
DATE=`date +%Y%m%d`;
PG_ARCHIVE=/home/postgres/archive/
PG_DATA=/home/postgres/data/
PG_HOME=/home/postgres
BACK_LOG=/home/postgres/log/hot_${DATE}.log

#START BACKUP
echo "START BACKUP..............." > $BACK_LOG
psql postgres -c "select pg_start_backup('hot_back')" >> $BACK_LOG
cd $PG_HOME
tar -zcvf ${PG_HOME}/backup/pg_back_${DATA}.tar.gz data/ >> $BACK_LOG
psql postgres -c "select pg_stop_backup()" >> $BACK_LOG
psql postgres -c "select pg_switch_xlog()" >> $BACK_LOG
psql postgres -c "select pg_current_xlog_location()" >> $BACK_LOG
echo "BACKUPEND" > $BACK_LOG
页: [1]
查看完整版本: PostgreSQL自动备份脚本