将所需要备份的库名编辑到/data/backup/pgsql-dbname文件中,一个库名占一行
# pgsql安装在/data/pgsql/下
vi /data/backup/pgsql-backup.sh
#!/bin/bash
echo "starting backup postgresql!"
echo "backup ing---------"
nowtime=`date +%Y%m%d`
path=/data/backup
mkdir -p $path/$nowtime
cat /data/backup/pgsql-dbname | while read dbname
do
/data/pgsql/bin/pg_dump --file "$path/$nowtime/$dbname.sql" "host=192.168.0.10 port=5432 user=postgres password=123456 dbname=$dbname"
echo "$dbname finished backup!"
done
# 只保留最近7天的pgsql备份
vi /data/backup/pgsql-delete.sh
#!/bin/bash
echo "delete the postgresql backup of 7 days ago"
find /data/backup/ -type d -mtime +7 -exec rm -rf {} \;
set timeout 1000
echo "the postgresql backup 7 days ago was delete"
# 配置定时任务
crontab -e
0 2 * * * /data/backup/pgsql-backup.sh
0 6 * * * /data/backup/pgsql-delete.sh