linux postgresql 做数据定时备份以及清理

在linux系统上新建pgsql-all-backup.sh文件

touch pgsql-all-backup.sh;

把以下内容拷贝到pgsql-all-backup.sh文件中。并保存

#!/bin/bash
source /etc/bashrc
echo "开始执行 PostgreSql 数据库satellite的备份!"
echo "backup ing -------------------"
nowtime=$(date +%F+%T)#数据库密码
export PGPASSWORD="xxx"
echo "时间:" $nowtime
set timeout 500
/usr/pgsql-11/bin/pg_dump --file "/usr/pgsql-11/bak-file/pgsql-all-"$nowtime".backup" --host "127.0.0.1" --port "5432" --username "postgres"  --dbname "xxx"
echo "数据库 satellite 备份结束!"
exit;

注:--file 是你要准备备份的目录文件。/usr/pgsql-11/bin/pg_dump。是你安装的目录。可以通过find / -name "pg_dump"去找到具体文件目录

做完以上内容后。需要在linux上新建定时任务。

crontab -e命令会弹出一个文件。把文件填上pgsql-all-backup.sh绝对路径。如下图

linux postgresql 做数据定时备份以及清理_第1张图片

然后保存。可以通过crontab -l 查看配置的定时内容

 

34 23 * * * /usr/pgsql-11/pgsql-all-backup.sh == >每天23:34分执行。

注意为了定时任务能执行命令。需要对sh文件进行设置权限。我这里是开启777的权限。chmod 777 pgsql-all-backup.sh

自己可以模拟实验下。/usr/pgsql-11/pgsql-all-backup.sh这样执行。是否能成功。

 如果执行不了,就需要chmod 777 pgsql-all-backup.sh。

备份目录下的文件

好了。以上就是定时备份的操作。

定时清理和定时备份步骤是一样的。这里不做太多的描述。把定时清理脚本放出来。

#!/bin/bash
source /etc/bashrc
echo "删除 5 天前的 数据库备份文件!"
find /usr/pgsql-11/bak-file/ -name "pgsql-all-*" -mtime +5 -exec rm -rf {} \;
set timeout 1000
echo " 5 天前的数据库备份文件删除完毕!"

你可能感兴趣的:(java,postgresql,数据库)