首页 > 数据库 > mysql教程 > 在CentOS实现mysql数据库的自动备份备份

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 16:37:42
原创
1144 人浏览过

? ? ? ? 数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。本脚本主要现实在CentOS中实现对数据库的备份和保留最近十五天的备份文件。避免太多无用陈旧的备份占用空间。 #!/bin/bashid="root" #用户名pwd="123123" #密码dbs="conedu commlib" #

? ? ? ? 数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。本脚本主要现实在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数据库的自动备份备份

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
centos下mysql启动报错
来自于 1970-01-01 08:00:00
0
0
0
centos7 - git的linux版本没有centos的?
来自于 1970-01-01 08:00:00
0
0
0
centos7 - centos 7,添加nginx为开机启动?
来自于 1970-01-01 08:00:00
0
0
0
为什么不是存放代码在linux的centos中
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板