脚本:gpscloud_restore.sh
在每个用户下面会有一个:~/.pgpass这个文件,主要用存放之前那个用户登录过postgres数据库,第一次登录成功后,下次再登录就不用输入密码了
#!/bin/bash
export POSTGRESPATH=/usr/pgsql-9.5/bin
export PGPASSFILE=~/.pgpass
echo "restore gpscloud db start at $(date +'%d-%m-%Y %H:%M:%S')"
#source ~/.bash_profile
echo "drop database test start...."
$POSTGRESPATH/dropdb -h 127.0.0.1 -U userName dataBaseName
echo "drop database test end!"
echo "create database test start...."
$POSTGRESPATH/createdb -h 127.0.0.1 -U userName dataBaseName
echo "create database test end!"
echo "restore database test start!"
################
#start restore##
################
function dirname(){
SUFFIX=$1
FINAL_BACKUP_DIR=/datamnt/dbbackup/"`date +\%Y-\%m-\%d`$SUFFIX/"
BACK_FULL_PATH=$FINAL_BACKUP_DIR"gpscloud.custom"
echo "gpscloud_back_path is "$FINAL_BACKUP_DIR
$POSTGRESPATH/pg_restore --host 127.0.0.1 --port 5432 --username userName --dbname dataBaseName --no-password --verbose $BACK_FULL_PATH
echo "restore database test end!"
echo "restore gpscloud db end at $(date +'%d-%m-%Y %H:%M:%S')"
}
#moth
DAY_OF_MONTH=`date +%d`
if [ $DAY_OF_MONTH -eq 1 ];
then
dirname "-monthly"
exit 0;
fi
#week
DAY_OF_WEEK=`date +%u` #1-7 (Monday-Sunday)
if [ $DAY_OF_WEEK = 6 ];
then
dirname "-weekly"
exit 0;
fi
#daily
dirname "-daily"