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添加到用户的定时任务就可以了。 为啥 不用物理备份 没有条件 。回复 2# stay_sun
我也写了自动备份脚本,不过是用Perl和Perl的Expect模块写的。 回复 4# fender0107401
哥们,分享出来吧。PG版太不活跃了。 回复 5# renxiao2003
传送门:http://bbs.chinaunix.net/thread-4232554-1-1.html
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]