热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxMySQL定时备份并上传到git仓库

简介我们在部署我们的中小型项目时在数据存储我们通常选择mysql作为我们的存储工具那么对于一个大的项目来说每天的数据量是十分大的对于每天产生的数据如果哪一天我们的网站或者服务器受到

简介

我们在部署我们的中小型项目时 在数据存储 我们通常选择mysql作为我们的存储工具 那么对于一个大的项目来说

每天的数据量是十分大的 对于每天产生的数据 如果哪一天我们的网站或者服务器受到攻击 我们的数据丢失是个很爆炸的事情

所以说自然这设计到数据库的备份 那么怎样的备份是我们想要的呢

对于备份的数据文件我们可能会存放在服务器目录 备份周期的话当然是按照数据量来说的 这里我们一般都是每天的凌晨备份一次

备份后的文件存放在我们的服务器的目录下面 但是万一有一天服务器也崩溃了 那么备份的文件也就没了

所以我们设想一个好的方案就是数据库每天备份 每次备份自动提交到远程仓库 这里我以码云为例

码云

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

新建一个私有仓库 当然为了每次可以免密码提交文件 在服务器里可以生成ssh key 具体的可以看我的以前的一篇博客

服务器新建备份

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

$ mkdir /bak

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

下面我们可以去新建脚本了 进入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

linuxcrontab指定的时间只有个部分

段位时间
第一段代表分钟 0—59
第二段代表小时 0—23
第三段代表日期 1—31
第四段代表月份 1—12
第五段代表星期几,0代表星期日 0—6

使用命令 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目录就可以了 这样局可以构成了我们需要的本分任务

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

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

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

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

相关链接

  • crontab验证
  • oschina码云GIT免登陆用
  • 码云平台帮助文档
  • CentOS下使用crontab命令来定时执行任务
  • CentOS Linux下每天自动备份MySQL数据库



推荐阅读
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 1、打开etcsysconfiggrub,   #vimetcsysconfiggrub   内容如下: ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 一、设置时区方法一:使用setup工具setup选择Timezoneconfiguration选择AsiaShanghai空格键勾选上System ... [详细]
  • 阿里云mysql性能,阿里云mysql性能
    本文目录一览:1、mysqld占用CPU过高是什么原因 ... [详细]
  • Jenkins教程:使用Jenkins进行持续集成
    【注】本文译自:https:www.edureka.coblogjenkins-tutorial本文将重点介绍Jenkins架构和Jenkins构建管道,并向您展示如何在Jenki ... [详细]
author-avatar
郑云雪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有