docker-compose 安装 pgsql (postgres)
docker-compose-pg.yml 文件内容
version: '3'
services:
iepms-gateway:
image: postgres:14.13
container_name: postgresql-14.13
restart: always
privileged: true
environment:
- POSTGRES_PASSWORD: test@2024
ports:
- 15432:5432
volumes:
- /home/iepms/data/pgsql/data:/var/lib/postgresql/data
- /home/iepms/backup/pgsql/data:/mnt
networks:
- env_iepms_app
networks:
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 ]; then
echo "$TIMESTAMP Backup completed successfully: $BACKUP_FILE" >> $BACKUP_DIR/pg_backup.log
else
echo "$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代表周日。
原文地址:https://blog.csdn.net/weixin_42903592/article/details/143915133
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!