#!/bin/bash
#脚本作用:备份本机postgres数据库
#Author: Jack Zhou
#Date: 2017-01-18
backupDir=/mnt/psql_backup #备份目录设置
pguser=postgres
backup_caps=14 #备份上限天数
TODAY=`date +%F`
if [[ `id -u` -ne 0 ]]; then
echo "Must run as root. So exit." >&2
exit 1
fi
if [ ! -d "$backupDir/$TODAY" ]; then
mkdir -p "$backupDir/$TODAY"
chown -R ${pguser}.${pguser} "$backupDir/$TODAY"
fi
exec &>> "$backupDir/backup.log"
echo "$(date +%F/%T)开始基础备份"
su - -c "pg_basebackup -D ${backupDir}/${TODAY}/base-backup -Ft -z -x" $pguser
[[ $? = 0 ]] && echo "$(date +%F/%T)备份成功!"
echo "删除以下过期的备份文件:"
find "$backupDir" -maxdepth 1 ! -path "$backupDir" -type d -mtime +$backup_caps -print -exec rm -fr '{}' \;