postgressql备份脚本

本文提供了一个自动化数据库备份的 bash 脚本教程,详细介绍了如何配置 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           ##开始备份


转载于:https://my.oschina.net/firxiao/blog/288094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值