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

2013-12-05  来源:本站原创  分类:编程  人气:6 

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

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

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

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

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

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

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


1

2


#mkdir /backup

#mkdir /oldbackup

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

这里我用的是 vi


1


# vi /backup/backup.sh

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


1

2

3

4

5

6

7

8

9


#!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 脚本文件的可执行许可


1


# chmod +x /backup/backup.sh

4. 执行脚本


1


#./backup.sh

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


1

2

3

4

5


[email protected]:/download#./backup.sh

You areinDownload Directory

Old Backup DatabaseisMoved to oldbackup folder

database backup successful completed

[email protected]:/download#

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

5. 使用cron制订备份计划

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

#crontab –e

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


1


013* * * * /backup/backup.sh

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

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

相关文章
  • 一个备份MySQL数据库的简单Shell脚本 2013-12-05

    Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了. 我首先要在本文带给你的是完整脚本.后面会对该脚本做说明.我假定你已经知道shell scripting. mysqldump和crontab. 适用操作系统:任何Linux或UNIX. 主脚本(用于备份mysql数据库): 该Shell脚本可以自动备份数据库.只要复制粘贴本脚本到

  • Linux自动备份MySQL数据库脚本代码 2013-10-23

    下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩.需要注意的是,这段脚本仅适用数据一致性要求不高的环境. #!/bin/bash mysql_pwd="password" mysql_dump="/usr/local/mysql/bin/mysqldump" cur_year=$(date +"%Y") cur_

  • Linux shell实现每天定时备份mysql数据库 2014-03-01

    这篇文章主要介绍了Linux shell实现每天定时备份mysql数据库的代码,分享给大家,希望大家能够喜欢. 每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据: 需求: 1,每天4点备份mysql数据: 2,为节省空间,删除超过3个月的所有备份数据: 3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据: #创建shell文件 vim backup_mysql.sh mysqldump -uroot -p123456 --all-database

  • 备份mysql数据库的php代码(一个表一个文件) 2014-03-14

    用php实现的备份MySQL数据库的代码,需要的朋友可以参考下. <?php $cfg_dbhost ='localhost';//mysql主机 $cfg_dbname ='sq_test';//数据库名 $cfg_dbuser ='root';//数据库用户名 $cfg_dbpwd ='jb51.net';//数据库用户密码 $cfg_db_language ='utf8';//数据库编码 class dbmysql{ public static $dbhost = 'localhost';

  • 10个教程教你轻松备份MySQL数据库 2015-01-31

    概述:你知道到MySQL是世界上最好并且应用最为广泛的系统,那么你知道如何轻松的备份MySQL数据库吗?今天小编就为大家收集了10个备份MySQL数据库的教程,只需点击图片即可,你还在等什么呢? 今天,小编为大家收集了一些非常有用的MySQL数据库备份教程.在开源数据库管理系统中,MySQL是最好并且应用最为广泛的系统.在下面的教程当中,将帮助大家学习如何进行MySQL数据库的备份,定期备份数据库对开发人员来说非常重要!迫不及待想要查看这些超酷的教程了吗?只需点击图片即可哦!一起来看看吧! 如何

  • linux下每天备份Mysql数据库并发送到指定邮箱 2014-08-13

    最近买了个云服务器搭了个博客,突然想到博客的数据安全问题,虽然这博客现在没什么有价值的东西,毕竟以后也可能积累出一些经验和心得,养成良好的备份习惯是很有必要的. 搜索了相关资料,过程其实很简单,从学习到应用不到1小时搞定,当然你要懂一些linux的知识. 配置邮箱 首先要有一个邮箱(废话),并支持STMP,我使用的是163邮箱和STMP服务,服务器是smtp.163.com.如果你使用其它第三方邮箱,在帐号设置那里一般都有说明SMTP服务器地址. 打开mail配置文件 vim /etc/mail

  • 自动备份MySQL数据库 2013-01-14

    如何自动备份MySQL数据库,既然是自动备份,那肯定得写脚本.备份可以用脚本实现,那自动又该如何实现呢?也很简单,就用windows自带的"任务计划"功能,设定一个时间,让系统定时跑脚本,不就实现了自动备份数据库的功能了吗?首先把脚本代码贴出来: · @echo on · · REM------------------------backup bugdb which is InnoDB----------------------------- · del F:\backup\websi

  • MYSQL代码 定期备份Mysql数据库 2013-10-27

    Mysql自动备份脚本供大家参考,实现了定期备份Mysql数据库,并且可以选在在每周的一天做指定目录下文件的全面备份,备份文件自动上传到你指定的FTP上,保证了备份的可靠性. 相信很多个人网站的站长,或者是独立Blog的博主,都有着备份数据库这样一个需求.当然WordPress这样插件非常丰富的Blog系统有好多能帮你完成这项任务的插件.如果您需要自己亲手来备份数据库的话,我贴一个Mysql自动备份脚本供大家参考,在国外网站上看到的,还是不错,实现了定期备份Mysql数据库,并且可以选在在每周的

  • Debian下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日 2013-07-10

    说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的osyunweidata数据库到/home/mysql_data里面,并且保存为osyunweidata_bak_2012_06_30.tar.gz的压缩文件格式(2012_06_30是指备份执行时当天的日期),最后只保留最近7天的备份 2.上传/home/mysql_data里面的备份文件到远程FTP服务器上,并且只保留最近7天的备份 3.FTP服务器:192.168.21.139 端口:21 账号:admin 密码:1

  • CentOS下每天自动备份mysql数据库 2015-02-09

    每天自动备份mysql数据库的脚本,并且自动发送到你指定的邮箱面,这样vpser再也不会为丢失数据烦恼啦. mysqldump -uuser -ppassword –databases db1 db2 db3 > /home/website/backups/databackup.sql tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/ echo "主题:数据库备份" |mutt -

  • Linux 每天自动备份mysql数据库的方法 2013-10-16

    linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤. /usr/bin为mysql安装目录 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: filename=`date +%Y%m%d` /usr/bin/mysqldump -opt mysql -u root -proot|gzip >/mysql_data_bak/

  • 一键备份MySQL数据库的批处理 2013-11-26

    一键备份MySQL数据库的批处理,方便备份mysql数据库. 将如下代码另存为.bat文件 @echo off echo. echo MySQL数据库备份 echo ***************************** echo. echo 今天是 %date% echo 时间是 %time% echo. echo ***************************** set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" md "D

  • PHP XML备份Mysql数据库 2014-03-15

    以下是在Linux下通过Apache+PHP对Mysql数据库的备份的文件代码 用PHP实现XML备份Mysql数据库 收藏 以下是在Linux下通过Apache+PHP对Mysql数据库的备份的文件代码: 文件一.Listtable.php (文件列出数据库中的所有表格,供选择备份) 请选择要备份的表格: <? $con=mysql_connect('localhost','root','xswlily'); $lists=mysql_list_tables("embed",$

  • PHP连接局域网MYSQL数据库的简单实例 2014-09-11

    这篇文章介绍了PHP连接局域网MYSQL数据库的简单实例,有需要的朋友可以参考一下 $conn=mysql_connect('192.168.0.220','root','123'); if(!$conn) echo "失败!"; else echo "成功!"; // 从表中提取信息的sql语句 $sql="SELECT * FROM user where userName='$user_name'"; // 执行sql查询 $result=m

  • 一个Linux系统安全设置的Shell脚本的分享(适用CentOS) 2015-04-10

    这篇文章主要介绍了一个设置Linux系统安全的Shell脚本的分享,适用CentOS,包含大部份的安全设置,只需执行脚本就可以得到一个相对安全的Linux系统了,需要的朋友可以参考下 我们将常用的系统安全配置制作为一个shell脚本,只需要在服务器上运行这个shell脚本即可完成安全设置. linux的系统安全设 置Shell脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置.使用方法将其复制,保存为一个shell文件, 比如security.sh.将其上传到

  • linux定时备份mysql数据库 2012-05-07

    利用crontab,系统每天定时备份mysql数据库 [内容提要]利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1.创建保存备份文件的路径/mysqldata #mkdir /mysqldata 2.创建/usr/sbin/bakmysql文件 #vi /usr/sbin/bakmysql 输入 rq=` date +%Y%m%d ` tar zcvf /mysqldat

  • 简单shell脚本监测mysql运行情况 2014-05-04

    阿里云服务器上的mysql服务经常挂掉,每次需要自己去重启nginx,php,mysql服务器.其实只需要写一个简单的shell脚本监测mysql的运行进程,一旦这个进程消失就重启服务器.同时把脚本加入到系统服务中.为了不占用过多的资源,让脚本1分钟检查一次. Monitor Shell <!-- lang: shell --> #!/bin/bash #Supported by Letian while [ "1"="1" ] do still_run

  • linux下改良版本mysqldump来备份MYSQL数据库 2014-09-29

    我的备份脚本都是在凌晨执行的,经常在慢查询日志里面看到这样的信息:select * from table1; 之前一直很纳闷,最后才了解到原来是MYSQLDUMP搞的鬼. 因为MYSQLDUMP会为整个库来加一个全局锁定. 如果单纯用MYSQLDUMP进行全库备份会造成以下三个方面的影响. 1.服务器CPU严重阻塞. 2.磁盘I/O直线增加. 3.所有的查询都成了慢查询. 我现在的网站数据库大概是5个G左右,而且每天都有增大. 表结构是MYISAM,INNODB,MEMORY三者混合. 所以单纯

  • linux下备份MYSQL数据库的方法 2015-02-22

    这是一个众所周知的事实,对你运行中的网站的MySQL数据库备份是极为重要的. 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup --------------------------------------

  • 使用mydumper多线程备份MySQL数据库 2015-01-05

    MySQL在备份方面包含了自身的mysqldump工具,但其只支持单线程工作,这就使得它无法迅速的备份数据.而 mydumper作为一个实用工具,能够良好支持多线程工作,这使得它在处理速度方面十倍于传统的 mysqldump:其特征之一是在处理过程中需要对列表加以锁定,因此如果我们需要在工作时段执行备份工作,那么会引起DML阻塞.但一般现在的MySQL都有主从,备份也大部分在从上进行,所以锁的问题可以不用考虑.这样,mydumper能更好的完成备份任务. Mydumper主要特性:是一个针对My