• 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 天前的数据库备份文件删除完毕!"

  • 相关阅读:
    一文带你了解ADC测试参数有哪些?
    ElasticSearch使用入门及拼音搜索介绍
    043—pandas 分组运用聚合函数agg制作汇总表
    我的十年编程路 2018篇
    中国敏捷十年实践者分享:敏捷教练的自我修为
    【Hack The Box】linux练习-- Jarvis
    C# CS0120解决办法
    GIT 常用指令
    【学习笔记】(数学)线性代数-矩阵的概念和特殊矩阵
    HTTP 报文详解
  • 原文地址:https://blog.csdn.net/saygood999/article/details/126698851