1、新建脚本文件:jyh_backup.sh
jyh是楼主的其中一个数据库名称
cd /data/backup/jyh
touch jyh_backup.sh 建议改一下权限,设置成可执行文件chmod u+x jyh_backup.sh
vi jyh_backup.sh,添加以下脚本:
DirectoryName=$(date +%Y%m%d)
/data/postgres/10.4/bin/pg_dump -p 5432 -U jyh -d jyh > //data/backup/jyh/jyhPrd${DirectoryName}.sql
2、设置定时备份时间
目前17:32,我们设置三分钟后17:35开始备份数据
vi /etc/crontab
35 17 * * * postgres /data/backup/jyh/jyh_backup.sh
生成了文件jyhPrd20201208.sql,证明备份生效了
具体备份时间,大家可以自行设置
crontab定时任务的时间设置可以参考楼主另一篇文章:https://blog.csdn.net/hjh872505574/article/details/109486120
3、遇到的问题
3.1 、之前备份脚本写成了:pg_dump -p 5432 -U jyh -d jyh > //data/backup/jyh/jyhPrd${DirectoryName}.sql,一直报 pg_dump: command not found
但手动执行脚本又没问题,排查了好久,后面加上postgresql的安装目录,才备份成功:/data/postgres/10.4/bin/pg_dump
3.2、创建jyh_backup.sh脚本的时候记得切换成postgres用户:su - postgres
crontab定时任务的执行用户也设置成postgres:35 17 * * * postgres /data/backup/jyh/jyh_backup.sh