postgresql备份脚本

#!/bin/bash
#备kdir=/data/backup/fileback份存储路径
# 加判断是否存在,创建、报警,继续备份
bakdir=/data/pg_bak
#要备份的路径
#filedir=/docker/bitbucket/var/
#备份日志记录
logdir=/tools/backup/pgbaklog/`date +%w`pgbak.log
#邮件接收人
receive=xxx@163.com

#获取ip
get_ip()  {

   )
    cmd_get_ip=$(/sbin/ifconfig |grep "192.168.1\." |awk -F ' ' '{print $2}'|tr -d "地址:"|tr -d "addr:")
    echo $cmd_get_ip
}

ip=$(get_ip)

#清理过期文件,执行备份
bak() {
#进入备份存储路径
cd $bakdir
# 清理6天前的备份
find ./ -name \*.sql.gz -mtime +6 -delete
#进入目录
# cd $filedir
#执行备份

#开始备份
/usr/local/postgsql/bin/pg_dump -U User -F c dbname| gzip > erp$(date +%Y%m%d%H%M%S).sql.gz

echo $? >> /tools/lxj-bakpg.log
a=`cat /tools/lxj-bakpg.log`
if [ 0 != $a ];then
    echo $ip"---erp数据库备份失败" | mail -s $ip'--erp数据库备份失败' $receive
fi

}

dubakdir() {
# 备份完成邮件通知备份情况
echo -e "备份存储路径:$bakdir\\n`ls -lh $bakdir/`" | mail -s $ip'数据库备份情况成功' $receive
}

    if [ -d $bakdir ];then
        bak
        dubakdir
    else
        echo $ip'备份存储路径被删除,即将重新建立,继续备份'| mail -s $ip'备份路径异常' $receive
        mkdir -p $bakdir
        bak
        dubakdir
    fi
上一篇:oTMS将SaaS服务下沉到运输全产业链 打造一站式管理平台


下一篇:海量数据+机器学习,会是治疗癌症的新“药方”吗?