备份脚本
mkdir /home/postgresql_backup
vim pgsql-bak.sh
#!/bin/bash
echo "开始执行 PostgreSql 数据库cube的备份!"
nowtime=$(date +%F+%T)
export PGPASSWORD=数据库密码
echo "时间:" $nowtime
set timeout 500
/usr/bin/pg_dump --file "/home/postgresql_backup/pgsql-all-"$nowtime".bak" --host "127.0.0.1" --port "5432" --username "postgres" --dbname "cube" --verbose --role "postgres" --blobs --encoding "UTF8"
echo "数据库 cube 备份结束!"
exit;
删除7天前备份文件脚本
vim delete-bak.sh
echo "删除 7 天前的 数据库备份文件!"
find /home/postgresql_backup/ -name "pgsql-all*" -mtime +7 -exec rm -rf {} \;
set timeout 1000
echo " 7 天前的数据库备份文件删除完毕!"
数据库恢复(root用户下)
1.创建数据库
2.向新建数据库导入数据
psql -h 127.0.0.1 -U postgres -d cube < /home/pgsql-all-xxxxxx.bak
crontab脚本管理(第一次进入需要选择编辑器,个人习惯选2)
crontab -e
no crontab for root - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
0 3 * * * /home/postgresql_backup/pgsql-bak.sh
30 3 * * * /home/postgresql_backup/delete-bak.sh
每天三点钟执行备份,三点半删除7天前备份文件