• 注册
  • 关于作者
    个人说明:他太懒了,什么都没有写
    关注 0 粉丝 0 喜欢 0 内容 238
    雅安
    聊天 送礼
    • 查看作者
    • 定时每天备份mysql并定时删除上月记录(脚本)

      shell脚本:

      备份的脚本比较简单:

      #!/bin/bash

       

      # 定义年 月 日

      year=`date   +%Y`

      month=`date   +%m`

      day=`date   +%d`

       

      # 定义备份的目录

      BACKDIR=/bak_1/mysql/$year/$month/$day

       

      # MySQL的root密码

      ROOTPASS=123456

       

      # 建立目录

      mkdir -p $BACKDIR

       

      # 获取数据库列表

      DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

       

      # 备份

      for dbname in $DBLIST

      do

      mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy

      done
       

       
      复制代码

       
      上面的脚本将

      数据

      库按"年/月/日"目录结构备份,将脚本存为back.sh添加到cron里每天凌晨3点执行

       

      00 03 * * * root /root/back.sh

       

      MySQL权限详解

      数据库开发

       

      下面的是每月3号删除上个月的备份,存为del_bak.sh,每月3号3点3分执行

       

      03 03 03 * * root /root/del_bak.sh

       

       

      注意脚本上传后,要chmod一下权限,比如chmod 755 /root/back.sh

      #!/bin/bash

       

      # 定义年 月 日

      year=`date   +%Y`

      month=`date   +%m`

      #day=`date   +%d`

       

      # 取上一个月

      month=`expr $month - 1` 

       

      # 如果是1月,则上一月为12,并且年也减1

        if [ $month -eq 0 ]; then

           month=12

           day=31

           year=`expr $year - 1` 

        fi

       

      # 因为备份时小于10月的月份有前导零,所以这里判断如果小于10月,则加前导零

        if [ $month -lt 10 ]; then

           pre=0 

         fi

      #获取要删除的目录名

      BACKDIR=/bak1/mysql/$year/$pre$month

       

      #删除了

      rm -rf $BACKDIR

      MySQL权限详解

      数据库开发

    • 0
    • 0
    • 0
    • 79
    • 单栏布局 侧栏位置: