postgressql备份脚本
博客专区 > Firxiao 的博客 > 博客详情
postgressql备份脚本
Firxiao 发表于3年前
postgressql备份脚本
  • 发表于 3年前
  • 阅读 42
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: postgresql自动分库; 全库备份

  需要配置postgres的无密码登录 配置文件pg_hba.conf, 供参考

host    all             root             127.0.0.1/32            trust


#!/bin/bash
#auto backup pgsql every database;
#author firxiao
#date 2014.06.11
BACKUPDIR='/backup'                  ##备份目录
HOST=''                              ##主机名字 为空时 默认为localhost
USER=''                              ##用户  为空时 默认为执行脚本的用户

if [ ! $HOST ]; then                 ##判断HOST不存在
      HOST="localhost"
fi;
if [ ! $USER ]; then                 ##判断USER是否存在
      USER=$(whoami)
fi;

DATE=`date +%Y%m%d`                  ##当前日期
M=`date +%Y%m`                       ##当前月份

function createdir()                 ##判断备份目录是否存在不存在则创建
{
while [ ! -d $BACKUPDIR ]; do
        echo "$BACKUPDIR is not exits, will create now"
        mkdir -p $BACKUPDIR
done
cd $BACKUPDIR
while [ ! -d "$DATE" ];do
        mkdir $DATE
done
while [ ! -d "$M" ];do
        mkdir $M
done
}

function showdatabase()             ##查看pgsql中库列表
{
psql -h $HOST -U $USER postgres -At -c "select datname from pg_database where not datistemplate and datallowconn  order by datname;" >/tmp/pglist
}

function backup()                  ##备份并移到当前月份文件夹
{
while read LINE
do
   pg_dump -h $HOST -U $USER -O -c $LINE > $DATE/$LINE$DATE.sql
done < /tmp/pglist
pg_dumpall -h $HOST -U $USER -c > $DATE/all$DATE.sql
tar cvfj $DATE.tar.gz $DATE
rm -rf $DATE
mv $DATE.tar.gz $M/
}

createdir && showdatabase && backup           ##开始备份


共有 人打赏支持
粉丝 19
博文 91
码字总数 34088
×
Firxiao
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: