Linux下postgres数据库备份(定时任务)


一。创建脚本

编写数据库定时备份脚本 ​脚本语句如下:

命名为:pgback.sh

#!/bin/bash

export PGPASSWORD='123456'   #数据库密码
export dbname=dbname     # 数据库库名
backuppath=/var/lib/pgsql/9.6/backups     #备份保存的路径
echo "开始执行 PostgreSql 数据库的备份!"
echo "backup ing -------------------"
# 获取当前时间
cur_time=$(date '+%Y-%m-%d')
sevendays_time=$(date -d -7days '+%Y-%m-%d')
rm -f $backuppath/${dbname}$sevendays_time.bak   #删除7天前的备份
pg_dump --port 5432 --username "postgres" --no-password --format custom --blobs --verbose --file "$backuppath/${dbname}$cur_time.bak" "${dbname}"

echo "当前时间 $(date +"%Y-%m-%d %H:%M:%S")"

echo "数据库备份结束!"

echo "${dbname}$cur_time.bak备份成功">>/home/pgsql/backups/bak.log   #输出日志

exit;

 

二。给文件权限

chmod +x pgback.sh

 

三。测试脚本

sh  pgback.sh

 

 

四。定时任务

crontab -e

设置每天晚上23点执行脚本,并输出到日志,路径可自行更改

0 23 * * * sh /home/pgsql/backups/pgback.sh > /home/pgsql/backups/bak.log 2>&1    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM