postgres-数据库自动备份

本文介绍了如何创建和配置Shell脚本来实现PostgreSQL数据库的自动备份与定期清理。首先,创建备份脚本用于每天23点执行,将数据库hrmw备份到指定路径,并采用压缩格式。然后,创建删除脚本,设定为每天23点半运行,删除8天前的备份文件。接着,通过crontab设置定时任务,确保备份和清理按计划执行。最后,赋予脚本执行权限并测试其正确性。
摘要由CSDN通过智能技术生成

创建备份shell脚本

1.创建备份脚本存放路径:

mkdir -p /u01/db-bak/2/bak-file/all

我把shell脚本存放在/u01/db-bak/2 备份后的pgsql.backup 放到 /u01/db-bak/2/bak-file/all 文件中

2.准备shell脚本

进入/u01/db-bak/2

创建备份shell脚本

vim pgsql-all-backup.sh

shell脚本如下

#!/bin/bash

echo "开始执行 PostgreSql 数据库hrmw的备份!"

echo "backup ing -------------------"

nowtime=$(date +%F+%T)

export PGPASSWORD=123

echo "时间:" $nowtime

set timeout 500

/usr/pgsql-11/bin/pg_dump --file "/u01/db-bak/2/bak-file/all/pgsql-all-"$nowtime".backup" --host "10.10.10.100" --port "5432" --username "postgres" --dbname "hrmw" --verbose --role "postgres" --format=c --blobs --encoding "UTF8"

echo "数据库 hrmw 备份结束!"

exit;

nowtime=$(date +%F+%T) --当前时间

PGPASSWORD=‘数据库密码'

二 创建定时清除备份shell脚本

1…准备shell脚本

进入cd /u01/db-bak/2

创建删除shell脚本

vim delete-pgbak.sh

删除shell脚本如下:

#!/bin/bash

echo "删除 8 天前的 数据库备份文件!"

find /u01/db-bak/2/bak-file/all/ -name "pgsql-all*" -mtime +7 -exec rm -rf {} \;

set timeout 1000

echo " 8 天前的数据库备份文件删除完毕!"

**

 

三 配置定时任务

1.添加定时任务

 [root@host-10-10-10-101 db-bak]# crontab -e

30 23 * * * /u01/db-bak/2/delete-pgbak.sh   

0 23 * * * /u01/db-bak/2/pgsql-all-backup.sh

每天23点进行数据库备份脚本 每天23点半运行删除脚本

2.查看定时任务

[root@host-10-10-10-101 db-bak]# crontab -l     

    30 23 * * * /u01/db-bak/2/delete-pgbak.sh  

0 23 * * * /u01/db-bak/2/pgsql-all-backup.sh

 

四 赋权限

配置权限chmod:

chmod +x /u01/db-bak/2/*

 测试shell脚本

脚本写完之后可以验证一下自己的脚本的执行正确性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值