每天自动备份MySQL数据库的shell脚本

标签: 技术技巧 shell 备份 数据库 | 发表时间:2017-02-15 09:50 | 作者:歪脖骇客
出处:http://www.webhek.com

经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的。一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行。我们需要一种安全的,每天自动备份的方法。下面的这个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 master/slave 数据库备份

- - 数据库 - ITeye博客
出自:http://blog.csdn.net/mer1234567/article/details/7405775.       Mysql内建的复制功能是构建大型,高性能应用程序的基础. 将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.

在CentOS实现mysql数据库的自动备份备份

- - CSDN博客系统运维推荐文章
        数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦. 本脚本主要现实在CentOS中实现对数据库的备份和保留最近十五天的备份文件. 避免太多无用陈旧的备份占用空间. #!/bin/bash id="root" #用户名 pwd="123123" #密码 dbs="conedu commlib" #数据库名字的列表,多个数据库用空格分开.

10 个MySQL数据库备份教程推荐

- Tim - ITeye资讯频道
MySQL是动态网站开发中最著名的开源数据库系统. 如果你在网站中使用了MySQL,那么你应该定期备份你的数据以防止它丢失. 本文将介绍自动或手动备份MySQL数据库的10个教程,看看有没有最适合你的方法. Backing Up Using MySQLDump(利用MySQLDump备份MySQL数据库).

一个备份MySQL数据库的简单Shell脚本

- - 博客 - 伯乐在线
本文翻译自  iSystemAdmin 的 《 A Simple Shell Script to Backup MySQL Database》. Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行. 我们也可以逐一敲入命令手动执行. 如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了.

自动备份mysql数据库 shell脚本

- - CSDN博客数据库推荐文章
最近使用了testlink和mantis这2个测试相关的系统,而他们又全部是基于mysql+php开发的,因此定期备份数据库也是很有必要的,下面是自己写的一个简单的shell脚本. 我的mysql是通过xampp这个套件安装的,因为这个套件可以一起安装testlink和mantis需要的php+apache环境.

Mysql数据库日志,备份及回滚操作

- - CSDN博客数据库推荐文章
一、打开二进制日志配置 :. 在Windows系统下,对mysql的my.ini的log-bin等进行配置目录位置时,假设要将log-bin的日志配置到D盘的mysqllog的文件为binlog. log-bin="D:\mysqllog/binlog"  注意:在这里的最后一个路径采用的是"/"而不是Windows文件系统的“\".

Xtrabackup全量备份与恢复mysql数据库

- - CSDN博客系统运维推荐文章
一、Xtrabackup简单概述:. Percona  Xtrabackup是开源免费的mysql数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁). XtraBackup支持所有的Percona Server、MySQL、MariaDB和Drizzle.

每天自动备份MySQL数据库的shell脚本

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

MySQL企业级数据库灾备(备份)系统-DMB v2.1发布

- 彦强 - MySQL 实验室(BLOG) - MySQL性能、MySQL Cluster集群、MySQL HA高可用等研究 - MySQL实验室
为了这系统宅了很多个周末,又一个小长假过去了, DMB v2.1终于可以那得出手了,现在分享出来让朋友们使用,希望能得到更多更好的建议. DMB 对InnoDB存储引擎支持在线热备(ibbackup, xtrabackup等),还可以根据用户需求选择备份模式,是否加锁获取Master信息等. “DMB数据库监控及灾备系统(监控、备份) for MySQL” 简单介绍见 http://www.mysqlab.net/tool/dmb/.

MySQL数据库的修复

- Xin - 博客园-首页原创精华区
找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:. 然后myisamchk 工具会帮助你恢复数据表的索引. 好象也不用重新启动mysql,问题就解决了. 当你试图修复一个被破坏的表的问题时,有三种修复类型. 如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的.