shell脚本+crontab实现MySQL数据自动备份压缩

当数据库中数据越来越多的时候,数据的备份是何等的重要,下面我们就来用 shell脚本 + crontab定时任务来实现MySQL的数据备份(支持多数据库),关于shell和crontab的用法这里不再做过多的解释,还不太会使用的同学可以查阅相关资料进行学习。

#!/bin/bash
      
# 要备份的数据库名,多个数据库用空格分开 例如 (database1 database2 database2)
databases=(mydatebase)
      
# 备份文件要保存的目录
basepath='/home/backup_mysql'
      
if [ ! -d "$basepath" ]; then
  mkdir -p "$basepath"
fi
      
# 循环databases数组
for db in ${databases[*]}
  do
    # 备份数据库生成SQL文件
    /bin/nice -n 19 /usr/bin/mysqldump -uroot --default-character-set=utf8  -p123456 --database $db > $basepath$db-$(date +%Y%m%d).sql
      
    # 将生成的SQL文件压缩
    /bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
      
    # 删除7天之前的备份数据
    find $basepath -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} \;
  done
      
  # 删除生成的SQL文件
rm -rf $basepath/*.sql
如果想支持远程服务器备份,可以将第17行当中的 mysqldump 参数改成  -p123456 后面加上 -h 192.168.1.123 远程ip 。

shell 脚本写完以后,保存在指定位置,例如放在/home/backup_mysql/back_mysql.sh,我们现在开始让它定时执行,这时候我们可以用Linux当中的 crontab, 来实现每晚11点定时执行:

1
0 23 * * * sh /home/backup_mysql/back_mysql.sh
备份备份效果如下,自动删除7天以前的备份,只保留7天内的数据,好处是可以节省磁盘空间:

-rw-r--r-- 1 root root 161994773 7月  16 03:40 mydatebase-20160716.sql.tar.gz

-rw-r--r-- 1 root root 162069976 7月  17 03:40 mydatebase-20160717.sql.tar.gz

-rw-r--r-- 1 root root 162137600 7月  18 03:40 mydatebase-20160718.sql.tar.gz

-rw-r--r-- 1 root root 164006629 7月  19 03:41 mydatebase-20160719.sql.tar.gz

-rw-r--r-- 1 root root 164911525 7月  20 03:41 mydatebase-20160720.sql.tar.gz

-rw-r--r-- 1 root root 166129583 7月  21 03:41 mydatebase-20160721.sql.tar.gz

-rw-r--r-- 1 root root 167313026 7月  22 03:42 mydatebase-20160722.sql.tar.gz

时间: 2024-12-27 19:54:04

shell脚本+crontab实现MySQL数据自动备份压缩的相关文章

MySQL主从复制配置 MySQL数据自动备份配置

使用MySQL主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务: 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率: 3.将主服务器上的数据复制到从服务器上,保护数据免受意外的损失: mysql服务器的主从配置,本来是一件很简单的事情,无奈不是从零开始,总是在别人已经安装好的mysql服务器之上 ,这就会牵扯到,mysql的版本,启动文件,等一些问题. 不过没关系,先问清楚两点 1.mysql配置文件my.cnf的位置

linux下mysql如何自动备份shell脚本_linux shell

Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令. #!/bin/bash # Shell script to backup MySql database # To backup Nysql databases file to /backup dir and later pick up by your # script. You can s

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

这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linuxhttp://www.aliyun.com/zixun/aggregation/31093.html">技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益. 注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟

网站数据自动备份方法_服务器其它

近来由于国家打击,所以各地难免会出现封机房.断网的情况,针对这种情况,站长们最需要的就是能及时备份自己的数据,本文是根据作者自己多年的维护经验,来和大家分享下网站数据自动备份的一些经验. 目前站长们大多使用的网站程序无外乎ASP\asp.net\php\jsp 数据库的话,大多是access\sqlserver\mysql 我们分2种情况来说明下. 对于win服务器下的自动数据备份,网站文件,自然是比较好备份的,那么如果数据库也可以自动备份,那就基本实现完美自动备份. 如果你有独立服务器,那么这

CentOS系统下如何设置mysql每天自动备份_Mysql

前言 大家都知道数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦.通过本文来一起来看看CentOS系统下如何设置mysql每天自动备份吧. 步骤如下 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: filename=`date +%Y%m%d` /usr/bin/mysqldump -uroot -proot boss >>/home

实现Oracle异地数据自动备份的方案

在大型商业应用中,数据的异地容灾备份十分重要,也必不可少.笔者根据自己的实践经验,设计了一套简洁地实现异地数据自动备份的方案,可供数据库管理人员参考.文中所有的程序都经过测试,运行良好.这里模拟的异地运行环境为一主一备两套Sun Solaris系统,所采用的备份方法为Oracle数据库提供的标准备份:export. 相关命令 文中主要用到三个命令,这里先单独介绍一下: export: 将数据库中数据备份成一个二进制系统文件,它有三种模式: 用户模式.表模式.整个数据库模式.还可分为三种备份类型:

把插入的数据自动备份到另一个表中 ~ 语境:本地和服务器自动同步

异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 后期博客首发:http://dnt.dkill.net/Article/Detail/316 逆天最近在弄一个本地和服务器自动同步的东西,每天都会添加很多新数据,本地和服务器同样的ShopMenu表,我总不能每次都把服务器的清掉然后再把本地的导入进去吧~ 可能有人说~直接插服务器的数据库不就可以了吗? 可惜==> 本地的数据测试通过后才允许同步到服务器中 可能又有人说~设置一

mysql 数据库自动备份问题

问题描述 mysql 数据库自动备份问题 我昨天看了看数据库备份,也成功地自动备份出来了,但是备份出来的是.frm文件,直接导入数据库的话,会报错,说是我第一行有错误,和关键字冲突 Query: ? Error occured at:2015-08-10 10:17:42 Line no.:4110 Error Code: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

mysql定时自动备份数据库脚本代码(linux/windows)

操作步骤: 方法一 1.安装p7zip:由于源里面没有此包,直接下载源码安装. 地址:http://p7zip.sourceforge.net/  代码如下 复制代码 wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2 tar xvf p7zip_9.20.1_src_all.tar.bz2 cd p7zip_9.20.1_src_all make && mak