#!/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 {} \;