postgres-数据库自动备份

创建备份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脚本

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

 

猜你喜欢

转载自blog.csdn.net/fyc__iOS/article/details/123399754