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

标签: IT技术 MysQL shell 数据库 | 发表时间:2012-04-22 15:37 | 作者:童海波
出处:http://blog.jobbole.com

本文翻译自  iSystemAdmin 的 《 A Simple Shell Script to Backup MySQL Database

Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了。

我首先要在本文带给你的是完整脚本。后面会对该脚本做说明。我假定你已经知道 shell scripting、  mysqldump和 crontab。

适用操作系统:任何Linux或UNIX。

a-simple-shell-script-to-backup-mysql-database

主脚本(用于备份mysql数据库):

该Shell脚本可以自动备份数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是 mysqlump 命令。后面会对每行脚本命令进行说明。

1. 分别建立目录“backup”和“oldbackup”

#mkdir /backup
#mkdir /oldbackup

2. 现在使用你喜欢的编辑软件创建并编辑“backup.sh”

这里我用的是 vi

# vi /backup/backup.sh

现在把以下几行命令输入到 backup.sh 文件中:

#!bin/bash
cd /backup
echo “You are In Backup Directory”
mv backup* /oldbackup
echo “Old Databases are Moved to oldbackup folder”
Now=$(date +”%d-%m-%Y--%H:%M:%S”)
File=backup-$Now.sql
mysqldump –u user-name  –p ‘password’ database-name > $File
echo “Your Database Backup Successfully Completed”

脚本说明:

切记,在第8行命令中,在mysqldump命令后要输入自己的数据库用户名、密码及数据库名。

执行该脚本,首先会进入  /backup 目录,然后该脚本会把原有的旧数据库备份移动到  /oldbackup 文件夹中,接着根据系统的日期及时间生成一个文件名,在最后  mysqldump 命令会生成一个“.sql”格式的数据库备份文件。

3. 设置 backup.sh 脚本文件的可执行许可

# chmod +x /backup/backup.sh

4. 执行脚本

#./backup.sh

脚本运行结束后会得到以下输入。

root@Server1:/download#./backup.sh
You areinDownload Directory
Old Backup DatabaseisMoved to oldbackup folder
database backup successful completed
root@Server1:/download#

注:首次执行该脚本会有一个“no such file”的提示信息,这是由于旧备份文件还不存在。只要再次执行该脚本就没有问题了,这个问题已经不存在了。

5. 使用cron制订备份计划

使用Cron可以定时执行该脚本,备份会自动完成。使用  crontab 命令编辑cron 执行的计划任务。

#crontab –e

只要在编辑器上加入下面这一行代码保存即可。

013* * * * /backup/backup.sh

本任务表示的是在每天下午1点钟把数据库备份到指定的文件夹。有关cron任务设置的详细内容可以查阅crontab手册。

对初学者而言,这是非常基础的脚本。希望你能举一反三写出更复杂的备份脚本。我们会努力提供更自动化的新脚本。请大家不吝赐教,我们会尽力解决你们的问题。感谢与我们相伴。

 

相关文章

相关 [备份 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,问题就解决了. 当你试图修复一个被破坏的表的问题时,有三种修复类型. 如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的.