docker里面pgadmin4自动备份pg数据库操作

news/2025/3/1 1:34:02/

一、需求

上线之后要求数据库数据每天备份,但是之前一直是人用pgadmin4 的界面手动点击备份,偶尔会忘记点击,就忘记备份了。每次下班前备份,除了会影响下班,还会忘记,就想都是脚本,手写一个自动备份的

二、实现

pg数据库是docker 安装的,pgadmin4也是docker安装的。 因为国产Linux服务器,没有网,直接安装各种依赖问题,烦烦烦....

实现逻辑:在pgadmin4 的容器里面使用命令备份数据库,在Linux服务器上开启crontab定时任务

三、具体步骤

1、pgadmin4安装

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/dpage/pgadmin4:8.9docker run  -d --name pgadmin4 --restart always -p 5080:80 \
-e 'PGADMIN_DEFAULT_EMAIL=21At@123.com' \
-e 'PGADMIN_DEFAULT_PASSWORD=123456' \
-e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \
-e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \
-e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \
-v /root/data/pgadmin4:/var/lib/pgadmin \
 pgadmin:8.9

2、备份脚本

第一步:在容器里面创建备份脚本/var/lib/pgadmin/back.sh

#!/bin/sh
d=$(date "+%Y-%m-%d_%H-%M")
echo "${d}"# 免输入密码
export PGPASSWORD="postgres"# 备份命令
/usr/local/pgsql-16/pg_dump --file "/var/lib/pgadmin/storage/pga_user_21At_123.com/backup/database_${d}.backup" --host "127.0.0.1" --port "5432" --username "postgres" --role "postgres" --format=c --large-objects --encoding "UTF8" --verbose "postgres"

第二步:在Linux服务器上创建脚本 /usr/local/bin/pg_back.sh

#!/bin/bash
echo "$(date) -- 开始备份数据库" >> /usr/local/logs/pg_back.log
docker exec pgadmin4 /bin/sh -c "/var/lib/pgadmin/back.sh >  /var/lib/pgadmin/logs/pg_back.log 2>&1"
echo "$(date) -- 备份完成! " >> /usr/local/logs/pg_back.log

3、开启定时任务

# 编辑定时任务脚本
crontab -e
# 添加下面两行
------------------------------------------------------
# 每天凌晨2点备份数据库
0 2 * * * /usr/local/bin/pg_back.sh
------------------------------------------------------
# 查看是否编辑成功
crontab -l

四、测试验证

备份的文件目录:/var/lib/pgadmin/storage/pga_user_21At_123.com/backup/database_${d}.backup

文件权限问题授权

chown 999:999 file


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

相关文章

Linux——mplayer项目

部分来源&#xff1a;看见代码就想敲 一&#xff0c;功能 二.VT100讲解 [1]简介 VT100是一个古老的终端定义,后面出现的终端几乎都兼容这种终端 VT100控制码是用来在终端扩展显示的代码。比如果终端上任意坐标用不同的颜色显示字符。 规则&#xff1a; <1>所有的vt10…

DeepSeek开源周第二日-DeepEP

&#x1f680;deepseek开源周第二天&#xff0c;DeepEP&#xff1a;专为MoE和专家并行打造的高性能通信库 &#x1f525;DeepEP 主要特点 &#x1f4a1; 高效 GPU 通信内核&#xff1a;提供高吞吐、低延迟的 all-to-all GPU 内核&#xff08;MoE dispatch & combine&…

【Go | 从0实现简单分布式缓存】-5:使用Protobuf通信

本文为极客兔兔动手写分布式缓存GeeCache学习笔记。 本文目录 一、Protobuf简述二、使用Protobuf开发三、使用protobuf的好处 一、Protobuf简述 之前已经讲过Protobuf了&#xff0c;这里在回顾一下&#xff0c;就是protobuf 即 Protocol Buffers&#xff0c;Google 开发的一种…

推荐律师事务管理系统(SpringCloud+mysql+rocketmq+deepseek)

1.深圳慧钛科技有限公司成立于2024年7月24日&#xff0c;官网地址&#xff1a;深圳慧钛律师事务管理系统&#xff08;官网&#xff09;-案件管理系统-律所档案管理-律所管理软件-律师办案系统-电子签章-律所印章-律师办公软件、律师办公系统、律所OA 。系统访问地址:深圳慧钛律…

线性模型 - 支持向量机

支持向量机&#xff08;SVM&#xff09;是一种用于分类&#xff08;和回归&#xff09;的监督学习算法&#xff0c;其主要目标是找到一个最佳决策超平面&#xff0c;将数据点分为不同的类别&#xff0c;并且使得分类边界与最近的数据点之间的间隔&#xff08;margin&#xff09…

登录次数限制

文章目录 一、应用场景与设计目的1. 应用场景2. 设计目的 二、功能设计1. 登录限制规则2. 解锁机制3. 适用维度 三、技术实现1. 数据存储2. 逻辑流程3. 实现代码示例4. 动态锁定时间 四、安全增强与扩展1. 防止用户名枚举2. 加入验证码3. 监控与报警4. 分布式支持 五、设计思考…

SGLang中context-length参数的默认值来源解析

SGLang中context-length参数的默认值来源解析 1. 问题背景2. 关键发现案例1&#xff1a;DeepSeek-V3案例2&#xff1a;DeepSeek-R1案例3&#xff1a;Llama-3.1-8B-Instruct 3. 实际验证4. 总结 在使用SGLang工具时&#xff0c;我们可能会遇到关于--context-length参数的设置问题…

包子凑数——蓝桥杯真题Python

包子凑数 输入输出样例 示例 1 输入 2 4 5输出 6样例说明 凑不出的数目包括&#xff1a;1, 2, 3, 6, 7, 11。 示例 2 输入 2 4 6输出 INF样例说明 所有奇数都凑不出来&#xff0c;所以有无限多个 运行限制 最大运行时间&#xff1a;1s最大运行内存: 256M 最大公约数 最大公…