• 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"去找到具体文件目录

    mysql备份同理。脚本如下:

    #!/bin/bash
    source /etc/bashrc
    echo "开始执行 mysql 数据库its的备份!"
    echo "backup ing -------------------"
    nowtime=$(date +%F+%T) #数据库密码
    echo "时间:" $nowtime
    set timeout 500
    /usr/local/mysql/bin/mysqldump -u用户名 -p密码   数据库 -t > "/home/database/mysql-all-"$nowtime".sql"
    echo "数据库 its 备份结束!"
    exit;

     

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

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

    然后保存。可以通过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 天前的数据库备份文件删除完毕!"

  • 相关阅读:
    AD22使用笔记+积累库
    C++学习第九天(list及其模拟实现)
    记一次调试微信订阅消息的坑
    Flask学生信息管理系统,前后端分离(附完整源码+数据库)
    【PR】pr在导入rst字幕文件后,修改的样式无法显示在视频画面中
    Nginx网关配置
    如何提取图片中的文字?
    协议栈——收发数据(拼接网络包,自动重发,滑动窗口机制)
    Java 之 IO流
    AIGC 设计能替代真正的设计师设计吗?
  • 原文地址:https://blog.csdn.net/saygood999/article/details/126698851