zoukankan      html  css  js  c++  java
  • 在CentOS实现mysql数据库的自动备份

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

  • 相关阅读:
    产生半透明效果的步骤
    突发奇想
    特征提取
    matlab计算混淆矩阵
    feature selection
    PCA in OriginPro 8.6
    计算局部方差
    最下生成树原理
    点击图像获取RGB
    区域填充算法
  • 原文地址:https://www.cnblogs.com/DaBing0806/p/4629603.html
Copyright © 2011-2022 走看看