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

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

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

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

主脚本(用于备份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手册。

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

 

时间: 2024-10-31 16:54:54

一个备份MySQL数据库的简单Shell脚本的相关文章

备份远程服务器文件简单shell脚本

假设有两台服务器: 192.168.0.1  原服务器 192.168.0.2  备份服务器 实现功能: 把192.168.0.1上的/opt/test/cms/目录文件打包压缩备份到备份服务器上.   shell脚本如下:   #! /bin/sh time1=$(date "+%Y%m%d%H%M%S") cd /data/sys_bak mkdir $time1 #bak ssh 192.168.0.1 tar -czvf /opt/test/test2/cms$time1.ta

shell脚本备份mysql数据库

shell脚本备份mysql数据库 需求 临近年关整理一些脚本程序,发现一个mysql数据库备份的脚本可以和大家分享一下,基于环境是ubuntu10.04server 思路 获取mysql服务器所有数据库名称,过滤掉不需要备份的数据库 通过mysqldump来for循环导出所有的数据库的sql文件 用zip加密压缩所有的sql文件 定期进行数据清理工作 shell代码 数据库导出代码 [html] #!/bin/bash #1.数据库信息定义 mysql_host="192.168.1.1&qu

Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1678653 设计该脚本的一些设计.编写考虑: 该脚本适用于编译安装mysql和通过yum或apt-get等安装方式 该脚本可以反复执行,不会重复覆盖数据 可增加,删除N天前的备份以节省磁盘空间 充分利用mysqldump的自带锁表功能.刷新日志.复制等功能 利用mysqldump命令备份MySQL数据库的脚本(不带

Linux VPS自动定时备份MySQL数据库发送至邮箱实现脚本

如今,我们在选择主机建站或者部署项目的时候,越发觉得VPS.服务器性价比会高很多,比如我们经常有看到年付十几美金.二十几美金的VPS服务器.相比较传统的虚拟主机是便宜很多,不过老蒋一直强调,如果我们是普通的个人博客.个人网站,如果虚拟主机能够满足需求的,建议还是要使用虚拟主机.因为虚拟主机站长维护成本较低,而且稳定性和安全性比VPS.服务器强一些. 因为,大部分VPS服务器都是无管理型的,所有的环境配置.网站部署.数据安全都需要我们自己来运维.尤其对于很多Linux服务器新手用户,老蒋遇到很多选

mysqldump使用脚本自动备份mysql数据库

问题描述 mysqldump使用脚本自动备份mysql数据库 在linux服务器使用脚本自动数据库时,报如下错误,备份不成功,求问大神如何解决:Warning: Using a password on the command line interface can be insecure 以下是我的脚本:#!/bin/shDUMP=/usr/local/mysql/bin/mysqldumpOUT_DIR=/home/dbbak/todayOUT_HISTORY_DIR=/home/dbbak/o

Linux shell实现每天定时备份mysql数据库_linux shell

每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据: 需求:   1,每天4点备份mysql数据:   2,为节省空间,删除超过3个月的所有备份数据:   3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据: #创建shell文件 vim backup_mysql.sh mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`.sql find

Linux自动备份MySQL数据库脚本代码

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

阿里云服务器上定时备份MYSQL数据库配置

一 linux服务器定时备份 第一步新建*.sh文件. 新建在home目录下 autobackupmysql.sh #!/bin/sh # File: /home/mysql/backup.sh # Database info DB_NAME="test" DB_USER="root" DB_PASS="root"   # Others vars BIN_DIR="/alidata/server/mysql/bin" #这里是

CentOS中crontab定时备份mysql数据库

1.编写备份数据库使用的shell脚本  代码如下 复制代码 vim /home/mysqlBack.sh #!/bin/bash MYSQL_USER=root MYSQL_PASS=root DATABASE=test FILE_NAME=$DATABASE.`date +%Y%m%d`.tar.gz TMP_FILENAME=$DATABASE.`date +%Y%m%d%H%M%S`.sql.gz #切换到文件存放的目录,防止在tar时,报警告信息:tar: Removing leadi