数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。本脚本主要现实在CentOS中实现对数据库的备份和保留最近十五天的备份文件。避免太多无用陈旧的备份占用空间。

#!/bin/bashid="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
  fidonetar -czf $backupname.tar.gz *.sql #压缩所有sql文件if [ "$?" == "0" ]then
  echo $(date +%Y-%m-%d)" tar sucess">>mysql.logelse
  echo $(date +%Y-%m-%d)" tar failed">>mysql.log
  exit 0firm -f *.sql  #删除所有的sql文件delname=mysql_$(date -d "$day day ago" +%Y-%m-%d).tar.gz  #得到要删除的太旧的备份的名字。rm -f $delname  #删除文件。

只要用cron 指定时间,自动备份即可。

在CentOS实现mysql数据库的自动备份的更多相关文章

  1. Mysql数据库如何自动备份

    Mysql数据库如何自动备份 一.总结 一句话总结:用navicat配合windows的批处理即可 navicat windows批处理 二.Mysql数据库自动备份 参考:Mysql数据库自动备份 ...

  2. Linux下实现mysql数据库每天自动备份

    Linux下实现mysql数据库每天自动备份 1.基本操作步骤 a.创建备份目录 mkdir -m 777 /home/wwwroot/backup b.创建备份脚本sh vim /home/wwwr ...

  3. Linux实现MySQL数据库凌晨自动备份

    Linux实现MySQL数据库凌晨自动备份 备份多数据库,每天凌晨两点执行,使用当前年月日作为文件夹,不存在该文件夹就创建,删除七天前备份过的文件. 定时调度使用crontab 1 login_use ...

  4. MySQL数据库的自动备份与数据库被破坏后的恢复1

    一.前言: 当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小. ...

  5. MySQL数据库的自动备份与数据库被破坏后的恢复(3)

    [2] 当数据库被修改后的恢复方法 数据库被修改,可能存在着多方面的原因,被入侵.以及相应程序存在Bug等等,这里不作详细介绍.这里将只介绍在数据库被修改后,如果恢复到被修改前状态的方法. 具体和上面 ...

  6. MySQL数据库的自动备份与数据库被破坏后的恢复(2)

    测试自动备份正常运转与否(备份恢复的方法) 这里,以通过实际操作的过程来介绍问题出现后的恢复方法. [1] 当数据库被删除后的恢复方法 首先建立一个测试用的数据库. [root@CentOS ~]# ...

  7. CentOS下MYSQL数据库的主从备份配置

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/limingzhong198/articl ...

  8. linux下如何实现mysql数据库定时自动备份

    概述   备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.而对于一些网站.系统来说,数据库就是一切,所以做好 ...

  9. Windows2003 下 MySQL 数据库每天自动备份

    1. 环境: windows server 2003 + Apache 2.0 + PHP5 + MySQL 4.0.26 . 2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为  ...

随机推荐

  1. jenkins配置ssh

    1.不使用密钥,不配置 2.使用用户名密码配置 3.构建完成后,将文件发送到指定服务器 要拷贝的文件是/var/lib/jenkins/web1/src/*.js

  2. PowerShell 惠普打印机双面驱动自动设置已安装

    win10系统,使用实验室的HP P2055dn打印机.每次关机重连后,都会把默认的双面打印机的设置改回“未安装”,需要手动改成“已安装”.感觉是个bug,win7的时候关机后状态还会保持. 每次连上 ...

  3. RabbitMQ - 远程过程调用

    试着用RabbitMQ进行RPC. 其实用RabbitMQ搞RPC也没什么特别的.只是我们需要在请求中再加入一个callback queue.比如这样: callbackQueueName = cha ...

  4. 第十三章.MySQL数据库与JDBC编程(下)

    JDBC的典型用法: JDBC4.2常用接口和类简介: DriverManager:用于管理JDBC驱动的服务类,程序中使用该类的主要功能是获取Connection对象,该类包含如下方法: publi ...

  5. 在C#中执行带有GO的批量sql语句

    引用 思海网络  在用C#中调用ADO执行批量SQL语句的时候,会出现无法识别GO语句的错误.这个时候,我们以GO语句为分割点,把整个批量语句分割成N块独立的SQL语句代码块(不包含GO语句),然后再 ...

  6. pom文件解析

    Maven的依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version)构成.因此,使用任何一个依赖之间,你都需要知道它的Maven坐标. ...

  7. thinkphp中ajax接收参数值

    if(IS_AJAX) { $oldpwd=I('param.oldpwd'); }

  8. Memcache 学习笔记(一)----Memcache — Linux部署

    Memcache 一.Memcache简介(内容摘自 --百度百科) memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以 ...

  9. svn up (svn update) 状态缩写含义

    A:add,新增  C:conflict,冲突  D:delete,删除  M:modify,本地已经修改  G:modify and merGed,本地文件修改并且和服务器的进行合并  U:upda ...

  10. ORACLE 收集统计信息

    1.     理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·        ...