一、业务场景

  自己现在做的项目基本上已经开发完成,正式开始上线运行,主要包含两个子项目一个是小程序的后台,一个是后台管理系统。

正式开始运行一段时间后,基本上也没什么BUG了,整个项目都已经能够正常的跑起来,程序也能够正常运转。这时候相对来说

系统也比较稳定。这时候自己就在考虑如何来备份数据库数据,做好备份工作是运维工作的必备技能之一,为的就是防止服务器

被黑客进行恶意攻击后,服务器上的所有数据都无法恢复的问题。

二、需求分析

  由于自己之前做的工作主要是在内网进行开发,即使有的项目在公网可以正常访问,生产服务器这一块自己也基本接触不到。

这导致的问题就是对于真实的服务器一些操作,自己只会一些基本的操作,比如常规的软件安装,开端口,部署项目等等。对于

数据库备份这一块自己懂得不多,对于运维这一块了解得比较少。很多东西都需要现学现卖,使用谷歌和百度来解决遇到的各种问题。

自己也私下里问过之前的同事,主要是做后端开发工作的朋友,他们有没有好的数据库备份脚本。他们给出的意见是他们没有做备份

工作,对于安全这一块也只是做一些常规的操作,比如禁止root用户远程登录,使用非root用户登录后再切换为root用户进行项目部署。

所以需要自己去学习如何备份数据库数据,去学习如何写脚本,复制、粘贴也行。

三、解决方案

经过自己的寻找,找到一个比较实用的脚本,是一个已经写好的脚本,修改里面的一些参数即可。自己使用这个脚本,修改好参数后

立马进行测试,发现竟然可行。之后就使用这个脚本来进行修改,按照项目的实际需求来不断底改进脚本。反反复复底修改多次后

自己已经将改好的脚本直接上传到服务器上,也在linux系统上设置了定时任务来执行这个脚本。主要的操作为在星期一、三、五、日

的凌晨4点执行该脚本,脚本已经添加了可执行权限,之后使用邮件将数据发送到一个指定的邮箱。

设置的执行时间如下:

过了几天后,自己来查看执行结果。发现程序正常运行,可是自己去查看接收到的具体邮件时,发现里面收到的内容并不是自己想要的。

linux下面的定时任务已经正常执行,邮件也已经正常发送,可是里面并没有自己需要的数据,说明数据库备份失败,不然怎么可能只有1kb

内存的大小。之后自己去排查问题,找了很久终于找到问题,导致这个问题的原因是在windows上写的脚本文件不能直接上传到linux服务器上

使用,因为windows和linux的字符编码不一样。解决办法之一是可以将在windows上写好的脚本文件内容复制、粘贴一份,然后在linux系统上

使用vim命令编辑脚本文件,将内容粘贴进行即可。自己做好之后,立马进行手动执行进行测试,发现这种方式可行。到此,在linux下自动备份

mysql数据库,然后将备份后的文件压缩打包发送到指定的邮件这个功能全部完成。

参考

https://blog.csdn.net/qq_34776233/article/details/90409000

最新文章

  1. 什么是Servlet?它有哪些特点
  2. codeacademy
  3. JS-005-常见下拉列表 Select 和 datalist
  4. linux查看防火墙状态及开启关闭命令(转)
  5. Android layout属性大全
  6. 将slider滑块从横着变为竖着的时候坐标变换的计算
  7. The Swift Programming Language-官方教程精译Swift(6)控制流--Control Flow
  8. Codeforces #Round 785(Div.2)
  9. PAT1118:Birds in Forest
  10. Beta 冲刺(5/7)
  11. imagecreatefrombmp、imagebmp php处理bmp文件
  12. DateFormat and SimpleDateFormat
  13. JQ和JS获取元素
  14. .net core 在扩展中使用接口实例之IServiceProvider
  15. django之def get_response(self, request):
  16. solr 通过【配置、多值字段、动态字段】来解决文本表达式查询精确到句子的问题
  17. Java基础82 jsp中的EL表达式(网页知识)
  18. Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, ...
  19. Webpack-simple cross-env 不是内部或外部命令问题处理
  20. Spring 学习(四)--- AOP

热门文章

  1. vue-cli4脚手架搭建三
  2. vue中vuex的五个属性和基本用法
  3. MySQL(4):卸载MySQL
  4. [BUUCTF]REVERSE——rsa
  5. Python利用ctypes实现C库函数调用
  6. Table.Range保留中间指定的….Range/Middle(Power Query 之 M 语言)
  7. 去除指定….RemoveMatching…(Power Query 之 M 语言)
  8. dart系列之:如丝滑般柔顺,操作文件和目录
  9. 移动应用开发:Flutter
  10. CF20B Equation 题解