广告
返回顶部
首页 > 资讯 > 数据库 >PostgreSQL 数据库备份脚本
  • 490
分享到

PostgreSQL 数据库备份脚本

PostgreSQL数据库备份脚本 2014-07-22 07:07:48 490人浏览 猪猪侠
摘要

postgresql 数据库备份脚本 #!/bin/bash # PG家目录(/opt/postgresql/pg96/) PG_HOME=${PGHOME} # pg数据库连接信息 PG_HOST="127.0.0.1" PG_P

PostgreSQL 数据库备份脚本

postgresql 数据库备份脚本


#!/bin/bash


# PG家目录(/opt/postgresql/pg96/)
PG_HOME=${PGHOME}
# pg数据库连接信息
PG_HOST="127.0.0.1"
PG_PORT="5432"
PG_USER="postgres"
# PG_PASSWD="pg@123456"

# 时间格式化,如 20211216
DATE="`date +%Y%m%d`"
# 备份文件目录
DIR_BACKUP="${HOME}/data/pg-backup"
# 日志目录: ${HOME}/data/pg-backup/logs
DIR_LOG="${DIR_BACKUP}/logs"
# 日志文件: ${HOME}/data/pg-backup/logs/db_backup.INFO.2021-12-30.log
FILE_LOG="${DIR_LOG}/db_backup.INFO.`date +%F`.log"

# 文件保留天数
DAY=7
DAY_LOG="`expr ${DAY} + 7`"
# 备份数据库名, 多数据间空格分隔
DATABASES=("db1" "db2" "db3")


# 测试目录, 目录不存在则自动创建
test -d ${DIR_LOG} || mkdir -p ${DIR_LOG}
test -d ${DIR_BACKUP}/${PG_USER}-${DATE} || mkdir -p ${DIR_BACKUP}/${PG_USER}-${DATE}
# ------------------- 2021-12-16_17:40:48 Start -------------------
echo -e "
----------------- $(date +%F %T) Start -----------------"
echo -e "
================= $(date +%F %T) Start =================" >> ${FILE_LOG}

# 遍历数据库名
for database in "${DATABASES[@]}"; do 
    echo "---------- Current backup database: [ ${database} ] ----------"
    echo "----------- Backed-up database: [ ${database} ] -----------" >> ${FILE_LOG}
    # 执行备份命令
    ${PG_HOME}/bin/pg_dump -h ${PG_HOST} -p ${PG_PORT} -U ${PG_USER} -w -d ${database} > ${DIR_BACKUP}/${PG_USER}-${DATE}/db_${database}_${DATE}.sql
done

# 压缩备份文件
cd ${DIR_BACKUP}
tar -czf ${PG_USER}-${DATE}.tar.gz ${PG_USER}-${DATE}/
echo "---------- Backup file created: [ ${PG_USER}-${DATE}.tar.gz ]"
echo "Backup file created: ${DIR_BACKUP}/${PG_USER}-${DATE}.tar.gz" >> ${FILE_LOG}

# 压缩后, 删除压缩前的备份文件和目录
rm -f ${DIR_BACKUP}/${PG_USER}-${DATE}/*
rmdir ${DIR_BACKUP}/${PG_USER}-${DATE}/


# ---------------------------------------------------------------------------------
# 至此, 备份已完成, 下面是清理备份的旧文件, 释放磁盘空间


# 方式一:清理旧文件
# 查找 7天前的文件
OLD_BACKUP="`find ${DIR_BACKUP} -type f -mtime +${DAY} -iname ${PG_USER}-*.gz`"
OLD_LOGS="`find ${DIR_LOG} -type f -mtime +${DAY_LOG} -iname db_backup.INFO.*.log`"

# 遍历旧备份文件
for bak in "${OLD_BACKUP[@]}"; do 
    # 删除旧备份
    rm -f ${bak}
    echo "------------------- Deleted old bak files -------------------" >> ${FILE_LOG}
    echo "${bak}" >> ${FILE_LOG}
done
# 遍历旧日志
for log in "${OLD_LOGS[@]}"; do 
    # 删除旧日志
    rm -f ${log}
    echo "------------------- Deleted old log files -------------------" >> ${FILE_LOG}
    echo "${log}" >> ${FILE_LOG}
done


# 方式二:清理旧文件
# echo "--------------------- Deleted old files ---------------------" >> ${FILE_LOG}
# echo "`find ${DIR_BACKUP} -type f -mtime +${DAY} -iname ${PG_USER}-*.gz`" >> ${FILE_LOG}
# echo "`find ${DIR_LOG} -type f -mtime +${DAY_LOG} -iname db_backup.INFO.*.log`" >> ${FILE_LOG}
# find ${DIR_BACKUP} -type f -mtime +${DAY} -iname ${PG_USER}-*.gz -exec rm -f {} ;
# find ${DIR_LOG} -type f -mtime +${DAY_LOG} -iname db_backup.INFO.*.log -exec rm -f {} ;


echo -e "------------------ $(date +%F %T) End ------------------
"
echo -e "================== $(date +%F %T) End ==================
" >> ${FILE_LOG}


您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQL 数据库备份脚本

本文链接: https://www.lsjlt.com/news/9055.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PostgreSQL 数据库备份脚本
    PostgreSQL 数据库备份脚本 #!/bin/bash # PG家目录(/opt/postgresql/pg96/) PG_HOME=${PGHOME} # pg数据库连接信息 PG_HOST="127.0.0.1" PG_P...
    99+
    2014-07-22
    PostgreSQL 数据库备份脚本
  • 数据库脚本备份
    rem *******************************Code Start*****************************@echo offset "Ymd=%date:~,4%%...
    99+
    2022-10-18
  • MongoDB 数据库备份脚本
    #!/bin/bash #backup MongoDB #mongodump命令路径 DUMP=/usr/local/mongodb/bin/mongodump#临时备份目录OUT_DIR=/data...
    99+
    2022-10-18
  • MySQL 数据库备份脚本
    MySQL 数据库备份脚本 #!/bin/bash # 数据库连接信息 DB_HOST="127.0.0.1" DB_PORT="3306" DB_USER="root" DB_PASSWD="root" # 时间格式化,如 20...
    99+
    2015-10-18
    MySQL 数据库备份脚本
  • Oracle数据库备份脚本
    物理备份脚本 #!/bin/sh export TMPDIR=$TMP; export ORACLE_SID=orcl; export ORACLE_BASE=/u01...
    99+
    2022-10-18
  • Shell 脚本备份MySQL数据库
    (1)思路  <1>安装MySQL数据库  <2>创建数据库,表,插入数据   <3>授权一个用于备份数据库的用户名和密码&nbs...
    99+
    2022-10-18
  • MySQL数据库备份Shell脚本
    此脚本将远程主机或者本地主机上的数据库的数据备份到本地。备份MySQL数据库除了information_schema、performance_schema、mysql自带库的其他生产库。备份时将MySQL数...
    99+
    2022-10-18
  • 备份数据库的shell脚本
    #!/bin/bash#back_mysql by 2016-11-14bak_dir=/data/backup_db/`date +%Y%m%d`mysqldb=mysqlmysqluser=*****m...
    99+
    2022-10-18
  • python oracle数据库备份脚本
    学习python,将shell备份脚本改成了python脚本练手.python oracle备份脚本一例如下。#!/usr/bin/env python   # -*- coding: utf-8 -*-  import time impo...
    99+
    2023-01-31
    脚本 备份 数据库
  • MySQL数据库全库备份及增量备份脚本
    脚本网盘链接下载。 1、全库备份脚本如下: #!/bin/bash ############### 定义默认值 ################# user='root' passwd='123.com...
    99+
    2022-10-18
  • 自动备份mysql数据库脚本
    自动备份mysql数据库脚本#!/bin/sh# NCONF database backup# Script by Chen# add (and adapt) the following line to t...
    99+
    2022-10-18
  • MySQL数据库定时备份脚本
    建议建立备份数据库的用户,本文使用root用户进行备份。 脚本内容如下: vim mysql_back.sh #!/bin/bash #指定连接数据库信息(用户名、密码、连接地址、端口、安装目录)DB...
    99+
    2023-08-31
    数据库 mysql java
  • zabbix数据库备份脚本及导入数据库
    #!/bin/bash#sadoc.blog.51cto.com#备份zabbix数据库,不备份监控历史数据HOST=127.0.0.1SQL_PORT=3306SQL_USER=zabbixSQL_PAS...
    99+
    2022-10-18
  • 最简单的数据库备份脚本
    source ~/.bash_profilebackup_path=/data/backup/mysql-backupfile_dirname=${backup_path}/$(date +"%Y-%m")...
    99+
    2022-10-18
  • MySQL备份脚本(包含zabbix数据库)
    需求:按天备份,保留一周,zabbix数据库不备份历史数据MySQL版本:5.7.17脚本:需要提前建立路径 mkdir -pv /opt/mysql_backup/auto_backu...
    99+
    2022-10-18
  • linux备份文件和数据库脚本
    备份数据库:#!/bin/bash# bei fen mysql:moves# time:2016/3/27PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin...
    99+
    2022-10-18
  • 两个备份数据库的shell脚本
    备份数据库的shell脚本一 #!/bin/bash#指定运行的脚本shell#运行脚本要给用户执行权限bakdir=/backupmonth=`date +%m`day=`date +%d`year=`d...
    99+
    2022-06-04
    脚本 备份 两个
  • mysql数据库备份与恢复脚本
    #!/bin/bash#mysql database backup and restore the script# define config variablehost=localhostuser=root...
    99+
    2022-10-18
  • python脚本按表备份MySQL数据库
    脚本功能: 1.自动创建备份目录 2.自动备份数据库的每个表,并压缩 3.备份结果,邮件通知联系人 4.脚本内容#!/usr/bin/env  p...
    99+
    2022-10-18
  • mysqldump备份指定mysql数据库脚本
        前几天有朋友让帮忙写一个mysql数据备份脚本,于是就有了下文通过mysqldump命令备份数据库的脚本,贴出来跟大家交流,若有问题,请指正,谢谢。    实...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作