一 创建备份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脚本
脚本写完之后可以验证一下自己的脚本的执行正确性。