postgresql定时备份脚本

备份pg数据库脚本,并压缩成tar包存储以节省空间,使用crontab定时执行。

crontab计划为(以postgres用户每天晚上11点执行):

0 23 * * *  /var/lib/pgsql/backup.sh >> /data0/backup/pgdata_export.log  2>&1

备份脚本为

#!/bin/bash

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/apache2/bin:/root/bin
export LANG=zh_CN.UTF-8

dest_folder=/data0/backup/
dest_file=pgdata_$(date +%Y%m%d).dmp
tar_file=pg_$(date +%Y%m%d).tar.gz

echo [$(date +'%F %H:%M:%S')]  准备导出postgresql数据库
echo [$(date +'%F %H:%M:%S')]  导出文件地址为$dest_folder$dest_file
echo [$(date +'%F %H:%M:%S')]  正在导出……

pg_dump ucenter > $dest_folder$dest_file

echo [$(date +'%F %H:%M:%S')]  导出成功,准备压缩已导出文件
echo [$(date +'%F %H:%M:%S')]  压缩文件地址为$dest_folder$tar_file
echo [$(date +'%F %H:%M:%S')]  正在压缩……

cd $dest_folder
tar -czf $tar_file $dest_file

echo [$(date +'%F %H:%M:%S')]  压缩完毕,准备删除数据库导出文件
rm -f  $dest_folder$dest_file
echo [$(date +'%F %H:%M:%S')] 数据库导出文件已删除
恢复

 psql -f pgdata_20180320.dmp -d database1;

你可能感兴趣的:(经验总结)