文章摘要
这篇文章介绍了如何使用Bash脚本自动化地备份PostgreSQL数据库数据。备份流程包括以下步骤: 1. 设置备份目录和目标路径。 2. 获取当前日期并生成备份文件名。 3. 使用tar命令将PostgreSQL数据压缩到备份目录。 4. 计算并保留最近的备份文件数(默认保留10个 backups)。 5. 删除超过保留数量的过期备份文件。 整个备份过程实现了对PostgreSQL数据的高效管理和自动化的数据备份。
#!/bin/bash
echo “========start backup pg data========”
# pg 数据目录
pgdata=/home/signal/instance/volumes
target=/home/bak/pgbak
if [ ! -d $target ];then
mkdir -p $target
else
echo “文件夹已经存在”
fi
# 当前日期
curDay=$(date “+%Y-%m-%d”)
echo ${curDay}
# 保留文件数
ReservedNum=10
# 去pg 数据目录,按日期压缩到备份文件夹
cd $pgdata
tar -zcvf $target/postgresql-$curDay.tgz postgresql
# 删除多余天数的压缩文件
#*.tgz表示筛选文件类型,去掉则针对整个目录的文件
cd $target
FileNum=$(ls -l https://www.jb51.net/article/*.tgz |grep ^- |wc -l)
while(( FileNum > $ReservedNum))
do
OldFile=$(ls -rt https://www.jb51.net/article/*.tgz| head -1)
rm -f $OldFile
let “FileNum–”
done
echo “========bakup pg data end========”
echo “========start backup pg data========”
# pg 数据目录
pgdata=/home/signal/instance/volumes
target=/home/bak/pgbak
if [ ! -d $target ];then
mkdir -p $target
else
echo “文件夹已经存在”
fi
# 当前日期
curDay=$(date “+%Y-%m-%d”)
echo ${curDay}
# 保留文件数
ReservedNum=10
# 去pg 数据目录,按日期压缩到备份文件夹
cd $pgdata
tar -zcvf $target/postgresql-$curDay.tgz postgresql
# 删除多余天数的压缩文件
#*.tgz表示筛选文件类型,去掉则针对整个目录的文件
cd $target
FileNum=$(ls -l https://www.jb51.net/article/*.tgz |grep ^- |wc -l)
while(( FileNum > $ReservedNum))
do
OldFile=$(ls -rt https://www.jb51.net/article/*.tgz| head -1)
rm -f $OldFile
let “FileNum–”
done
echo “========bakup pg data end========”
© 版权声明
文章版权归作者所有,未经允许请勿转载。



