经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的。一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行。我们需要一种安全的,每天自动备份的方法。下面的这个shell脚本就是能让你通过过设定Crontab来每天备份MySQL数据库的方法。

#!/bin/bash

# 数据库认证

user=""

password=""

host=""

db_name=""

# 其它

backup_path="/path/to/your/home/_backup/mysql"

date=$(date +"%d-%b-%Y")

# 设置导出文件的缺省权限

umask 177

# Dump数据库到SQL文件

mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql

通过上面的脚本,我们可以每天导出一份sql备份文件,文件的名称按当日日期生成。日积月累,这样的文件会生成很多,有必要定时删除一些老旧的备份的文件,下面的这行命令就是做这个任务的,你可以把它加在上面的脚本后面。

# 删除30天之前的就备份文件

find $backup_path/* -mtime +30 -exec rm {} \;

我在使用上面的脚本时曾经遇到过一个问题,Crontab定时执行脚本导出没有报错,但导出的是空的SQL文件,但登录到控制台手工执行这个脚本是备份成功的。后来发现是Crontab执行脚本是缺少系统环境信息,找不到mysqldump,改正的方法是使用mysqldump全路径就行了。而之所以没有报错信息,是因为mysqldump把错误信息输出到了 stderr。在命令的后面末尾接 “2>&1” 这样一个信息重定向命令就可以看到错误信息了:

mysqldump -ujoe -ppassword > /tmp/somefile 2>&1

mysql数据自动备份_每天自动备份MySQL数据库的shell脚本相关推荐

  1. mysql 数据倾斜 索引_索引,索引优化,mysql索引失效场景

    索引 保证数据完整性. 关注索引的两个点:树和有序(树可以定位索引的起点,有序可以定位索引的终点) 1.每个表都是一个索引组织表(集群表) 以主键来组织的一个表 主键索引 2.其他索引都是二级索引 每 ...

  2. perl mysql 数据推拉_用perl 从mysql取出数据做统计分析代码

    为完成老大的要求,我写了一个代码完成这个工作.现在记录在博客上,跟大家分享一下.脚本水平很差,((o(´∀`)o)). 要求如下: 1.数据库mydata1中有个sms_info表,表中记录格式如下: ...

  3. 加载mySQL数据到内存_【测试验证】数据库加载到内存占用大小

    介绍 数据库大小加载到内存占用是不是数据库的本身大小哪?今天忽然突发奇想于是就测试一下.首先我要说明的是我是在EF框架下进行测试的,不知道会不会与ado.net连接方式差生不同的结果,我仅仅是做记录, ...

  4. perl mysql 数据推拉_科学网—从MySQL数据库中提取序列并进行引物设计的perl脚本 - 闫双勇的博文...

    利用MySQL数据库来储存序列,通过perl脚本获取序列,并进行引物设计.当然除了引物设计干其它事情也是可以的. 将FASTA文件导入MySQL数据库的方法: bp_seqfeature_load.p ...

  5. mysql 数据拦截器_拦截器中操作数据库

    做了个小项目,当初设计的是只有一个模块的用户行为被记录,其他不用记录,昨天突然说,要用户在整个系统的行为都要被记录. 很懵逼,如果把用户行为的记录放在各个模块,可以很精确的记录,但是各个模块都要有更改 ...

  6. mysql 备份库的shell_MySQL数据库的shell脚本自动备份

    MySQL数据库的shell脚本自动备份 经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的.一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执 ...

  7. mysql nb3 备份_通过Navicat进行Mysql数据库自动备份与还原

    Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_person,表中有两条数据. 1.点击"自动运行&q ...

  8. linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

    这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...

  9. 群晖 mysql 自动备份_宝塔定时备份网站及数据库至群晖FTP存储空间

    我曾经多次由于网站没有备份,丢失过几个数据,也许一直以为作为个人站长很不称职的,大多数的时间我都是一个人在自嗨.所以站长一定要注重网站和数据库的备份工作.网站备份工作说起来是一件很简单的事情,也许我们 ...

最新文章

  1. 批量实现面向对象的实例
  2. 解除svn控制下的文件夹的svn的控制
  3. 冯诺依曼机器人_冯·诺依曼型计算机的五大组成部分是什么?
  4. 第一章信息安全基础考试要点及真题分布
  5. SQL Server数据库镜像的FailOver自动连接
  6. AWS上的Cilium网络拓扑和流量路径
  7. c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法
  8. A 附录、ResolvableType
  9. codeblocks报错Process terminated with status -1073741510 (0 minute(s), 3 second(s))
  10. JavaScript内建对象
  11. Mac新手入门:关于Mac睡眠、开机密码的取消与更改教程
  12. 嵌入式Linux内核,文件系统的制作
  13. android设置内存大小,Android Studio内存大小的设置
  14. latex教程 / 矢量图转换 / 文献引用bibitem
  15. uni-app创建并运行微信小程序项目
  16. c语言中lu是什么数据类型,C语言编程入门之--第四章C语言基本数据类型
  17. JavaScript 实现音乐播放器
  18. ftp关键技术二:nobody进程创建和使用(一)
  19. 弘辽科技:同为女强人,人生道路却大不相同。
  20. 基于浏览器请求的国际化实现

热门文章

  1. 堆排序(heap_sort)
  2. SQLServer 游标简介与使用说明[转]
  3. MPAndroidChart 教程:开始 Getting Started
  4. 【翻译】Ext JS最新技巧——2015-8-11
  5. WebFetch 是无依赖极简网页爬取组件
  6. Mysql中使用命令行导入.sql文件新建数据库表(图文)
  7. 如何设置JTable行颜色
  8. EGOImageView 解析
  9. 循环神经网络应用案例
  10. 自动安装 Java Access Bridge 2.0.2 的批处理脚本