postgresql数据库备份脚本

#!/bin/bash
source /etc/profile
# 定义host、账号、密码,需要自定义
pg_host='172.3.2.7'
pg_user='postgres'
export PGPASSWORD=123456
pg_port='5432'
# 定义备份目录、备份库、文件格式,需要自定义
date_day=`date +%F`
bak_dir='/data/bak/datas/postgres13'
bak_db_name=('cd' 'common' 'gdpc' 'data' 'postgres')
for db_name in ${bak_db_name[@]};do
    [[ -z $db_name ]] && exit 1
        mkdir -p $bak_dir/$db_name/
        pg_dump -h $pg_host  -U $pg_user -d $db_name -f $bak_dir/$db_name/$db_name$date_day.sql
        if [[ $? -eq 0 ]];then
                echo "$db_name$(date +%F-%T)   备份成功" >> $bak_dir/pg_bak.log
                cd $bak_dir/$db_name && tar zcf $db_name$date_day.tar  $db_name$date_day.sql
        if [[ $? -eq 0 ]];then
            rm -f $bak_dir/$db_name/$db_name$date_day.sql
        fi
    fi
    find $bak_dir/$db_name/ -mtime +7 -exec rm -f {} \;
done
posted @ 2023-12-29 14:08  村尚chun叔  阅读(178)  评论(0)    收藏  举报