linux服务器PostgreSQL数据库自动备份
新建备份脚本
mkdir /home/postgresql_backup
vim pgsql-bak.sh
#!/bin/bash
echo "开始执行 PostgreSql 数据库canal_tour的备份!"
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 "canal_tour" --verbose --role "postgres" --blobs --encoding "UTF8"
echo "数据库 canal_tour 备份结束!"
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 天前的数据库备份文件删除完毕!"
更改脚本权限,测试脚本
chmod u+x
chmod是权限管理命令change the permissions mode of a file的缩写。。
u代表所有者。
x代表执行权限。
-
表示增加权限
#就表示对当前目录下的*.sh文件的所有者增加可执行权限 chmod u+x *.sh
修改权限后可通过./*sh
进行脚本测试
crontab脚本管理
crontab -e
加入一下内容
每天凌晨3点执行备份脚本,凌晨3.30执行删除7天前备份脚本
0 3 * * * /home/postgresql_backup/pgsql-bak.sh
30 3 * * * /home/postgresql_backup/delete-bak.sh
可通过crontab -l
列出所有要执行的定时任务,通过tail -f /var/log/cron
查看定时任务crontab日志记录
参考链接:https://blog.csdn.net/weixin_44784018/article/details/115911676