docker-compose 安装 pgsql (postgres)

news/2024/11/25 14:48:08/

docker-compose-pg.yml 文件内容

version: '3'
services:iepms-gateway:image: postgres:14.13container_name: postgresql-14.13restart: alwaysprivileged: trueenvironment:- POSTGRES_PASSWORD: test@2024ports:- 15432:5432volumes:- /home/iepms/data/pgsql/data:/var/lib/postgresql/data- /home/iepms/backup/pgsql/data:/mntnetworks:- env_iepms_appnetworks:  env_iepms_app:  external: true

我这边指定了 外部网络 env_iepms_app 如果这个网络不存在,就会创建失败。

docker network ls 查看网络
docker network create env_iepms_app 创建网络

定时备份脚本
pg_backup.sh

#!/bin/bash# 设置数据库连接参数
DB_HOST="localhost"
DB_PORT="5432"
DB_NAME="test"  # 替换为你的数据库名
DB_USER="postgres"  # 替换为你的数据库用户
DB_PASS="test@2024"  # 替换为你的数据库密码# 设置备份目录
BACKUP_DIR="/mnt"  # 替换为你的备份文件存放目录# 获取当前时间戳
TIMESTAMP=$(date +"%Y%m%d%H%M%S")# 设置备份文件名
BACKUP_FILE="$BACKUP_DIR/backup_$DB_NAME_$TIMESTAMP.sql"# 使用pg_dump命令备份数据库
docker exec -u postgres 容器名称 pg_dump -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -Fc -b -v -f "$BACKUP_FILE"# 检查备份是否成功,并导出备份日志
if [ $? -eq 0 ]; thenecho "$TIMESTAMP Backup completed successfully: $BACKUP_FILE" >> $BACKUP_DIR/pg_backup.log
elseecho "$TIMESTAMP Backup failed." >> $BACKUP_DIR/pg_backup.log
fi# 检查并删除指定天数前的备份文件(例如:删除5天前的备份)
find "$BACKUP_DIR" -type f -name "$DB_NAME_*.sql" -mtime +1 -exec rm {} \;
echo "$TIMESTAMP Backup completed and old backups cleaned up." >> $BACKUP_DIR/pg_backup.log

Linux 添加定时任务

crontab -e 编辑当前用户的cron任务
crontab -l 查看任务列表

0 1 * * * /home/backup/pg_backup.sh 每天凌晨1点执行脚本

第一个数字代表分钟(0-59)。

第二个数字代表小时(0-23)。

第三个数字代表一个月中的某一天(1-31)。

第四个数字代表月份(1-12)。

第五个数字代表一周中的某一天(0-7),0或7代表周日。


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

相关文章

(笔记,自己可见_1)简单了解ZYNQ

1、zynq首先是一个片上操作系统(Soc),结合了arm(PS)和fpga(PL)两部分组成 Zynq系统主要由两部分组成:PS(Processing System)和PL(Programmable L…

前端知识点---箭头函数(javascript)

文章目录 箭头函数(javascript)箭头函数省略小括号省略大括号箭头函数与没有argumentsthis的指向问题 箭头函数(javascript) 箭头函数 引子: <input type"text" id"txt1" ><input type"button" id"btn" value"测试&…

Leetcode打卡:最小区间

执行结果&#xff1a;通过 题目&#xff1a;632 最小区间 你有 k 个 非递减排列 的整数列表。找到一个 最小 区间&#xff0c;使得 k 个列表中的每个列表至少有一个数包含在其中。 我们定义如果 b-a < d-c 或者在 b-a d-c 时 a < c&#xff0c;则区间 [a,b] 比 [c,d] …

cocos creator 3.8 打飞机Demo 9

简单的demo实现&#xff0c;没优化以及加上音频文件&#xff0c;没有开始结束暂停等逻辑。 首先2D状态下&#xff0c;接受的素材 1、首先实现背景的移动 基本逻辑如下 关于fixUpdate&#xff0c;可以写一个基类&#xff0c;然后继承它 //固定帧计时private _now_time 0;//固定…

RHCE——DNS域名解析服务器

1、DNS简介 DNS是互联网上的一项服务&#xff0c;它作为将域名和IP地址相互映射的一个分布式 数据库&#xff0c;能够使人更方便的访问互联网。 &#xff08;1&#xff09;因特网的域名结构 因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在 因特网上的主机或路…

Python MySQL通过Binlog 获取变更记录 恢复数据

通过MySQL的二进制日志&#xff08;Binlog&#xff09;获取数据库的变更记录&#xff0c;并用于恢复数据&#xff0c;是一个相对高级的操作。这通常涉及读取Binlog中的事件&#xff0c;解析这些事件以了解数据变更的详细信息&#xff0c;然后基于这些信息来恢复或回滚数据。 在…

设计模式之 命令模式

命令模式&#xff08;Command Pattern&#xff09;是行为型设计模式之一&#xff0c;它将请求&#xff08;或命令&#xff09;封装成一个对象&#xff0c;从而使用户能够将请求发送者与请求接收者解耦。通过命令模式&#xff0c;调用操作的对象与执行操作的对象不直接关联&…

前端工程化-node/npm/babel/polyfill/webpack 一文速通

文章主要介绍了前端工程化的相关内容&#xff0c;包括 Node 环境、npm 包管理器及其命令、配置和镜像&#xff0c;package.json 文件&#xff0c;babel 和 polyfill 用于解决 JavaScript 兼容性问题&#xff0c;以及 webpack 这一前端构建工具的作用、核心概念、构建流程、安装…