shell+crontab制作postgresql数据库定期备份脚本

shell+crontab制作postgresql数据库定期备份脚本

业务背景

在开发期间,定期对数据库备份是非常有必要的

第一步:编写shell脚本 postgresql_backups.sh

#! /bin/sh
#获取一个时间戳 
ymdhm=`date +%Y%m%d%H%M`
echo $timestamp $ymdhm
#创建文件夹
mkdir -p /home/pgdatabackups/$ymdhm

#路径
backupspath=/home/pgdatabackups/$ymdhm

#数据库备份,如果pg_dump找不到命令,则利用find找到命令所在位置
#使用find / -name pg_dump 找到pg_dump命令工具
pg_dump=/usr/pgsql/bin/pg_dump

#设置密码,可以不输入密码(与配置文件的有关)
export PGPASSWORD=123456


#剔除表 ods_new_log; 127.0.0.1 不行,则改成对应的ip
$pg_dump -h 127.0.0.1  -p 5432 -U postgres -T ods_new_log -F c -b -v -f   $backupspath/tenant_1011014.backups  tenant_1011014
$pg_dump -h 127.0.0.1  -p 5432 -U postgres -F c -b -v -f  $backupspath/metadata.backups  metadata
$pg_dump -h 127.0.0.1  -p 5432 -U postgres -F c -b -v -f  $backupspath/platform.backups  platform

#其他,定期情况文件
#定期清理文件; 按2分钟删除文件(包括文件夹)
#find  /home/pgdatabackups/ -mmin +2 -type d -exec rm -rf {} \;

#按7天删除文件(包括文件夹)
find  /home/pgdatabackups/ -mtime +7 -type d -exec rm -rf {} \;

第二步 加入crontab

crontab -e
# 每天23点备份,注意shell脚本位置
0 23 * * * /home/pgdatabackups/postgresql_backups.sh
发布了274 篇原创文章 · 获赞 119 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/qq_31156277/article/details/103655570
今日推荐