PostgreSQL数据库定时备份脚本

news/2024/10/21 10:06:32/

      大多数数据库管理系统都提供了自带的备份工具,可以使用这些工具来进行备份操作。

    例如:

  • MySQL:使用 mysqldump 命令进行备份。
  • PostgreSQL:使用 pg_dump 命令进行备份。

      以下是一个用于定时备份 PostgreSQL 数据库的示例脚本。这个脚本将使用 pg_dump 工具来创建数据库备份,然后将备份文件保存到指定的目录中,并可选择保留最近一段时间内的备份文件。

#!/bin/bash# PostgreSQL数据库相关信息
db_host="localhost"
db_port="5432"
db_name="your_database_name"
db_user="your_database_user"
db_password="your_database_password"# 备份存储目录
backup_dir="/path/to/backup/folder"# 保留备份的天数
retention_days=7# 创建备份目录
mkdir -p $backup_dir# 备份文件名
backup_file="$backup_dir/backup_$(date +'%Y%m%d%H%M%S').sql"# 执行备份
PGPASSWORD=$db_password pg_dump -h $db_host -p $db_port -U $db_user -F c -b -v -f "$backup_file" $db_nameif [ $? -eq 0 ]; thenecho "数据库备份成功: $backup_file"# 删除旧的备份文件find $backup_dir -name "backup_*.sql" -type f -mtime +$retention_days -exec rm -f {} \;
elseecho "数据库备份失败."
fi

在这个脚本中,您需要修改以下变量以适应您的数据库和备份需求:

  • db_hostdb_portdb_namedb_userdb_password:替换为您的数据库相关信息。
  • backup_dir:指定备份文件保存的目录。
  • retention_days:设置要保留的备份文件的天数。

保存脚本,然后通过 chmod +x script_name.sh 命令赋予执行权限。您可以使用 cron 作业来定期运行这个脚本,以创建定时的数据库备份。

例如,通过运行 crontab -e 命令,添加一行类似于以下内容的条目:

0 2 * * * /path/to/your/script_name.sh

上述条目表示在每天凌晨2点钟执行备份脚本。根据您的需求和系统配置,您可以调整 cron 表达式来适应不同的定时备份策略。


http://www.ppmy.cn/news/1068888.html

相关文章

【调整奇数偶数顺序】调整数组使奇数全部都位于偶数前面习题集讲解

题目: 题目名称: 调整奇数偶数顺序 题目内容: 调整数组使奇数全部都位于偶数前面。 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位…

构建个人博客_Obsidian_github.io_hexo

1 初衷 很早就开始分享文档,以技术类的为主,一开始是 MSN,博客,随着平台的更替,后来又用了 CSDN,知乎,简书…… 再后来是 Obsidian,飞书,Notion,常常有以下困…

prometheus+cadvisor监控docker容器

一、安装cadvisor docker pull google/cadvisor:latest二、运行容器 docker run -d \--volume/:/rootfs:ro \--volume/var/run:/var/run:rw \--volume/sys:/sys:ro \--volume/var/lib/docker/:/var/lib/docker:ro \--publish8088:8080 \--detachtrue \--namecadvisor \--priv…

无涯教程-分类算法 - Python实现函数

为了在Python中实现SVM,无涯教程将从标准库导入开始,如下所示- import numpy as np import matplotlib.pyplot as plt from scipy import stats import seaborn as sns; sns.set() 接下来,从sklearn.dataset.sample_generator创建具有线性可…

浅析Linux 物理内存外碎片化

本文出现的内核代码来自Linux4.19,如果有兴趣,读者可以配合代码阅读本文。 一、Linux物理内存外碎片化概述 什么是Linux物理内存碎片化?Linux物理内存碎片化包括两种: 1.物理内存内碎片:指分配给用户的内存空间中未…

Js 判断数据类型

一般用 typeof, 而不是instanceof. 见: 详解JS中的instanceof使用及手写instanceof_js instanceof_天外飞雨道沧桑的博客-CSDN博客 javaScript 中如何检测一个变量是一个 String 类型?_js 判断是否是string_Jade琛的博客-CSDN博客

Django(8)-静态资源引用CSS和图片

除了服务端生成的 HTML 以外,网络应用通常需要一些额外的文件——比如图片,脚本和样式表——来帮助渲染网络页面。在 Django 中,我们把这些文件统称为“静态文件”。 我们使用static文件来存放静态资源,django会在每个 INSTALLED…

【C++】课后练习题 p121 9

习题 9.9 商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。 现已知当天3…