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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)