linux中postgres的备份脚本

#!/bin/sh
#############################################################################
#创建$HOME/script目录,用于存放备份脚本和备份相关的文件。                   #
#创建$HOME/wmpay_bak 目录,用于存放数据库的备份文件。                       #
#创建$HOME/wmpay_archive_log目录,用于存放postgres数据库的归档日志。        #
#############################################################################
#创建$HOME/script/wmpay_bak_file目录,用于存放wmpay_bak的压缩打包文件。     #
#创建$HOME/script/wmpay_bak_file_tmp目录,用于存放当天备份的压缩包。        #
#创建$HOME/script/wmpay_archive_log_bak目录,用于归档日志的备份。           #
#创建$HOME/script/wmpay_archive_log_bak/archive_status                      #
#############################################################################


#变量设定
PGDATA=$HOME/pgdata
BACKBASE=$HOME/wmpay_bak
ARCHIVE=$HOME/wmpay_archive_log
ARCHIVE_BAK=$HOME/script/wmpay_archive_log_bak
SCRIPT=$HOME/script
BAK_FILE_TMP=$SCRIPT/wmpay_bak_file_tmp
BAK_LOG=$BAK_FILE_TMP/wmpay$(date +%Y%m%d)_bak.log
#把执行结果放入日志中
exec 1>>$BAK_LOG 2>&1
#############################################################################
#做备份$HOME/wmpay_bak
rm -rf $BACKBASE/*
sleep 1s
psql -d wmpay -c "select PG_START_BACKUP('test_backup')"
cp -R $PGDATA/* $BACKBASE
psql -d wmpay -c "select PG_STOP_BACKUP()"
psql -d wmpay -c "select pg_switch_xlog()"

#############################################################################
#把备份wmpay_bak,压缩到$BAK_FILE_TMP
tar zcvf $BAK_FILE_TMP/wmpay$(date "+%Y%m%d%H%M%S")online_bak.tar.gz $BACKBASE

#############################################################################
#用ftp把$BAK_FILE_TMP路径下的文件移动到ftp的/POSTGRES_BAK/wmpay_bak_file
sleep 1s
ftp -i -n -v << FTPIT
open 192.168.1.96
user ftp123 ftp123
binary
cd /POSTGRES_BAK/wmpay_bak_file
lcd /home/postgres/script/wmpay_bak_file_tmp
mput *bak.tar.gz *bak.log
by
FTPIT

#############################################################################
#把昨天的归档日志复制到$ARCHIVE_BAK
sleep 1s
find $ARCHIVE -name "*" -type f -mmin -$(expr `date +%H` \* 60 + `date +%M` + 1440 \* 1) -a -mmin +$(expr `date +%H` \* 60 + `date +%M`) -exec cp {} $ARCHIVE_BAK \;
find $ARCHIVE/archive_status -name "*" -type f  -exec cp {} $ARCHIVE_BAK/archive_status \;

#############################################################################
#把$BAK_FILE_TMP路径下的文件移动到$SCRIPT/wmpay_bak_file保存。
sleep 1s
mv $BAK_FILE_TMP/* $SCRIPT/wmpay_bak_file

#############################################################################
#删除$SCRIPT/wmpay_bak_file路径下存放的8天以前的备份文件。
sleep 1s
find $SCRIPT/wmpay_bak_file -name "*" -type f -mtime +8 -exec rm -rf {} \;

#############################################################################
#删除$ARCHIVE路径下存放的8天以前的归档日志。
sleep 1s
find $ARCHIVE -name "*" -type f -mtime +8 -exec rm -rf {} \;
#############################################################################
#删除$SCRIPT/wmpay_archive_log_bak路径下存放的8天以前的归档日志的备份。
sleep 1s
find $ARCHIVE_BAK -name "*" -type f -mtime +8 -exec rm -rf {} \;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值