• 技术文章 >运维 >linux运维

    Linux MySQL 定时备份并上传到 git 仓库

    藏色散人藏色散人2019-12-24 14:29:29转载1032
    简介

    我们在部署我们的中小型项目时, 在数据存储, 我们通常选择 mysql 作为我们的存储工具. 那么对于一个大的项目来说, 每天的数据量是十分大的. 对于每天产生的数据, 如果哪一天我们的网站或者服务器受到攻击, 我们的数据丢失是个很爆炸的事情, 所以说自然这设计到数据库的备份. 那么怎样的备份是我们想要的呢?

    对于备份的数据文件我们可能会存放在服务器目录, 备份周期的话当然是按照数据量来说的, 这里我们一般都是每天的凌晨备份一次. 备份后的文件存放在我们的服务器的目录下面, 但是万一有一天服务器也崩溃了, 那么备份的文件也就没了, 所以我们设想一个好的方案就是数据库每天备份 每次备份自动提交到远程仓库, 这里我以码云为例.

    推荐学习:《linux教程

    码云

    首先建立好远程仓库, 在这里我选择了 码云

    新建一个私有仓库, 当然为了每次可以免密码提交文件, 在服务器里可以生成 ssh key

    服务器新建备份

    在服务器为了存储备份后的文件, 新建一个备份目录

    $ mkdir /bak

    进入该目录后, 继续新建两个文件夹 mysqlBak 和 shDir, 一个是放脚本文件, 一个是放具体备份后的文件.

    下面我们可以去新建脚本了, 进入 shDir 目录后执行

    $ vim mysqlBak.sh

    具体的代码如下:

    #!bin/sh
    ################### 数据库配置信息 #######################
    createAt=`date +%Y-%m-%d-%H:%M:%S`
    user=root
    passwd=ghc1996
    dbname=ispace
    mysql_back_path=/bak/mysqlBak
    ################### 执行命令 #######################
    mysqldump -u $user -p$passwd $dbname > $mysql_back_path/$createAt.sql
    cd /bak/mysqlBak
    /usr/local/git/bin/git add .
    /usr/local/git/bin/git commit -m $createAt
    /usr/local/git/bin/git push

    这里只是一个简单的脚本, 我想了解 linux 的很容易看的懂, 执行的就是备份数据库并 push 到远程仓库.

    那么既然是脚本, 我们需要指明什么时候执行这个脚本, 指定脚本执行.

    $ crontab -e

    我们希望是每天的凌晨执行一次备份, 并添加到远程仓库, 那么添加

    $ 0 0 * * * /bin/sh /bak/shDir/mysqlbak.sh

    对 linux 的 crontab 指定的时间只有五个部分

    ccd07c12bef1e83d033c0ae6e8a0d80.png

    使用命令 crontab -e 然后直接编辑定时脚本。 时间 + 具体的名字

    举个列子来说就是:

    0 0,3,7,9,12,15,18,21,23 * * * /bin/sh /bak/shell/mysqlBak.sh

    这样的话就是我每天 0,,3,7,9,12,15,18,21,23 点时会去执行这个脚本文件, 那么这就实现了基本的数据库的备份

    执行定时任务:

    $ crontab -l

    如果服务没有启动 那么重新启动定时任务

    $ systemctl restart crond

    那么现在这个定时任务就已经启动了, 对于提交远程仓库前提是在服务器生成 ssh key并添加到码云, 这在上面也提到过.

    对于需要提交文件的目录初始化 git 目录就可以了, 这样局可以构成了我们需要的本分任务.

    当然过程中可能会遇到一些问题, 我在下面的相关链接都已经罗列出来了.

    这样一来我们就可以实现了每天的凌晨备份我们的数据库, 并同时提交到我们的码云这个远程仓库, 这也是我们想要的效果.

    我也说过备份的周期视我们的项目的数据量的大小而定.

    对于每个框架都有自己的备份机制 我这里所写的是我们自己实现的一个通用的备份机制

    以上就是Linux MySQL 定时备份并上传到 git 仓库的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:ruoxiaozh,如有侵犯,请联系admin@php.cn删除
    专题推荐:Linux
    上一篇:shell关系运算符介绍 下一篇:linux中如何为目录或文件修改权限
    Web大前端开发直播班

    相关文章推荐

    • linux中检查可用内存大小的几种方法• linux下提示命令找不到的解决方法• linux中如何安装设备驱动程序• DEDECMS5.5在国外Linux主机下无法采集怎么办

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网