• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

CentOS

gaodaima.com

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

数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。本脚本主要现实在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   <span>本文来源gaodai#ma#com搞*!代#%^码$网*</span>  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中添加一行,就可以在指定时间,自动备份了。

gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:在CentOS实现mysql数据库的自动备份_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址