介绍我们在部署我们的中小型项目时,通常会选择mysql作为我们的存储工具来进行数据存储。对于一个大项目,每天的数据量是非常大的。对于每天产生的数据,如果我们的网站或者服务器受到攻击,我们的数据丢失是一件非常具有爆发性的事情,那么设计数据库的备份是很自然的事情,那么我们想要什么样的备份呢?对于备份的数据文件,我们可能会将其存放在服务器目录中。备份周期当然是根据数据来的。从数量上来说,我们一般每天早上都会备份备份文件,存放在我们服务器的目录下,但是如果哪天服务器宕机了,备份文件就没有了,所以我们想象一个好的解决办法就是备份每天update数据库,每次备份自动提交到远程仓库。这里我以码云为例。码云先搭建远程仓库。这里我选择码云新建一个私有仓库。当然是为了每次都不用密码向服务器提交文件。ssh密钥可以在其中生成。具体可以参考我之前的博客。在服务器上创建一个新的备份。在服务器上创建备份目录,用于存放备份文件。$mkdir/bak进入该目录后,继续新建两个文件夹,mysqlBak和shDir。放脚本文件一是放具体的备份文件。接下来,我们可以新建一个脚本,进入shDir目录,执行$vimmysqlBak.sh。具体代码如下:#!bin/sh###################数据库配置信息########################createAt=`date+%Y-%m-%d-%H:%M:%S`user=rootpasswd=ghc1996dbname=ispacemysql_back_path=/bak/mysqlBak####################执行命令########################mysqldump-u$user-p$passwd$dbname>$mysql_back_path/$createAt.sqlcd/bak/mysqlBak/usr/local/git/bin/git添加./usr/local/git/bin/gitcommit-m$createAt/usr/local/git/bin/gitpush这里只是一个简单的脚本我想明白linux很容易理解执行就是备份数据库然后push到远程仓库然后现在但是,我们需要指定何时执行脚本。指定要执行的脚本$crontab-e。我们希望每天早上进行一次备份,并添加到远程仓库中。然后添加$00***/bin/sh/bak/shDir/mysqlbak.sh为Linux的crontab指定的时间只指定五段代表星期几,0代表星期日0-6使用命令crontab-e然后直接编辑时序脚本。比如时间+具体名称是00,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如果服务没有启动,那么重启定时任务Task$systemctlrestartcrond现在这个定时任务已经启动了。提交远程仓库,前提是在服务器上生成sshkey,并添加到码云。这也是上面提到的。需要提交文件的目录初始化git目录即可。局可以构成我们需要的子任务。当然,在这个过程中我们可能会遇到一些问题。我在下面列出了相关链接。这样我们就可以每天早上备份我们的数据库,同时提交给我们。码云的远程仓库也是我们想要的效果。我也说了,备份周期取决于我们项目数据量的大小。每个框架都有自己的备份机制。我这里写的是我们自己的实现。通用备份机制相关链接crontab验证oschina代码云GIT免登录代码云平台帮助文档CentOS下使用crontab命令定时执行任务linux每天自动备份mysql数据库
