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

标签: centos mysql 数据库 | 发表时间:2013-07-05 18:52 | 作者:rentiansheng
出处:http://blog.csdn.net
        数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。本脚本主要现实在CentOS中实现对数据库的备份和保留最近十五天的备份文件。避免太多无用陈旧的备份占用空间。


#!/bin/bash
id="root" #用户名
pwd="123123" #密码
dbs="conedu commlib" #数据库名字的列表,多个数据库用空格分开。
backuppath="/root/mysqlbackup" #保存备份的位置
day=15   #保留最近几天的备份
[ ! -d $backpath ] &&mkdir -p $backuppath  #判断备份目录是否存在,不存时新建目录。
cd $backuppath   #转到备份目录,这句话可以省略。可以直接将路径到命令的也行。

backupname=mysql_$(date +%Y-%m-%d)  #生成备份文件的名字的前缀,不带后缀。
for db in $dbs;   #dbs是一个数据名字的集合。遍历所有的数据。
do
   mysqldump -u$id -p$pwd -S /var/lib/mysql/mysql.sock $db >$backupname_$db.sql  #备份单个数据为.sql文件。放到当前位置
   if [ "$?" == "0" ]  #$? 得到上一个shell命令的执行的返回值。0表示执行成功。其他表示错误。并将将结果写入到日志中。
   then
       echo $(date +%Y-%m-%d)" $db  mysqldump sucess">>mysql.log 
   else
      echo $(date +%Y-%m-%d)"  $db mysql dump failed">>mysql.log
      exit 0
   fi
done
tar -czf $backupname.tar.gz *.sql #压缩所有sql文件
if [ "$?" == "0" ]
then
   echo $(date +%Y-%m-%d)" tar sucess">>mysql.log
else
   echo $(date +%Y-%m-%d)" tar failed">>mysql.log
   exit 0
fi
rm -f *.sql  #删除所有的sql文件
delname=mysql_$(date -d "$day day ago" +%Y-%m-%d).tar.gz  #得到要删除的太旧的备份的名字。
rm -f $delname  #删除文件。


只要在 /etc/crontab中添加一行,就可以在指定时间,自动备份了。

blog: http://blog.csdn.net/rentiansheng/article/details/9254733


作者:rentiansheng 发表于2013-7-5 18:52:36 原文链接
阅读:2 评论:0 查看评论

相关 [centos mysql 数据库] 推荐:

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

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

CentOS 6下搭建Apache+MySQL+PHP+SSL

- 〤依然特雷西 - 博客园-首页原创精华区
网上的一些文章都已经比较老了,现在版本高了之后,其实配置是很省力的(不考虑什么负载的话). 分享全过程,出了文中提到的安装epel rpmfushion 源指令不同外,其他的过程也适用与Centos 5. 1.安装CentOS 6 ,可以选择最小安装,也可以安装桌面. 3.安装mysql,并设置mysql开机自启动,同时启动mysql.

Centos 更改MySQL5.7数据库目录位置 - CSDN博客

- -
Centos7.3 安装Mysql5.7并修改初始密码. 基于 CentOS Mysql 安装与主从同步配置详解. yum安装(RPM分发进行安装)MySQL的几个人默认目录如下:. 假如要把目录移到/home/data下需要进行下面几步:. 1、home目录下建立data目录. /var/lib/mysql整个目录移到.

centos 下 编译安装 nginx + mysql + php 服务

- - CSDN博客系统运维推荐文章
1.6、创建nginx启动脚本. 1.7、修改nginx配置文件. 2.2、创建mysql用户. 2.4、解压安装mysql. #执行三条语句 解决 /bin/rm: cannot remove `libtoolT': No such file or directory. 2.5、修改配置文件并启动数据库.

MySQL数据库的修复

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

MySQL数据库的IO操作

- - haohtml's blog
         淘宝丁奇分享的PPT:MySQL数据库的IO操作,详细分享了四块的内容,并且告诉大家如何调整MySQL数据库IO操作相关的参数,给出了详细的选择策略,现替其整理成文章分享与此. 4.影响io行为的一些参数和选择策略. 一个简单的查询 select * from t where id>=(  select id from t where k1=100 limit 100000,1) limit 2;.

MySQL数据库优化总结

- - CSDN博客推荐文章
        对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要. 一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库设计、sql语句优化、数据库参数配置、恰当的硬件资源和操作系统,这个顺序也表现了这四个工作对性能影响的大小.        一、数据库设计   适度的反范式,注意是适度的.

Google数据库产品LevelDB对决MySQL

- - HTML5研究小组
去年一月份,Google发布了LevelDB. LevelDB是Key-Value嵌入式数据库管理系统编程库,目前的版本能够支持Billion级别的数据量. LevelDB是一个C++库,可按照字符串键值顺序映射. 源于其本身的良好设计,特别是LSM算法,LevelDB性能非常之高. 在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w.

excel数据导入mysql数据库

- - 互联网 - ITeye博客
1、excel另存为txt.       选中将要导出的数据列,然后另存为选择其它格式=>文本文件(制表符分割). E:\项目\fblike\game_code_san.txt. 2、txt导入到mysql数据库. load data infile 'E:\\项目\\fblike\\game_code_san.txt' into table game_code_san(code).

c/c++连接mysql数据库

- - CSDN博客数据库推荐文章
        由于项目需要,要用c/c++链接mysql数据库. 网上很多类似的解说,但是大部分都需要在本机器上安装完整版的msyql. 其实,有时候我们并不想在改变自己电脑上原有的环境,但是我们却希望通过我们的程序链接数据库. 比如:我在本机上已经安装了一个mysql,但并不是完整版的(比如appserv集成mysql或者wamp集成mysql),或者我的工作在局域网中,我只需要链接另外一台机器上的mysql.