• shell脚本实现MySQL全量备份+异地备份


    一、知识储备工作:

    1. Mysql导出数据库语法:
    mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
    
    1. shell脚本for循环及if条件判断基本语法
    2. gzip压缩文件用法
    3. rsync异地备份用法:
    4. ssh免密登录

    二、场景

    本次利用shell脚本实现以下需求:

    1. 每天凌晨3点执行备份,需备份所有库(db1 db2 db3)
    2. 备份的数据存放在本地/data/mysql下
    3. 将所有备份文件压缩,格式为gzip
    4. 压缩后的名称格式示例:qin-2020-02-24-21:19.sql.gz
    5. 利用rsync实现异地备份
    6. 本地备份数据保留2个月

    三、MySQL数据库备份脚本

    1. 编写脚本:mysql-backup.sh
      1 #! /bin/bash
      2 #Save sa /etc/mysql-backup.sh
      3 BAKDIR="/data/mysql"
      4 MYSQLUSR="root"
      5 MYSQLPW="123123"
      6 LOG=/var/log/mysql-backup.log
      7 NOW=`date +%Y-%m-%d-%H:%M`
      8 [ ! -d $BAKDIR ] && mkdir -p $BAKDIR
      9 echo "##########today##########" >>$LOG
     10 echo "mysql bakup begin at `date`" >>$LOG
     11
     12 for db in qin1 qin2 qin3
     13   do
     14     mysqldump -u$MYSQLUSR -p$MYSQLPW $db | gzip >  $BAKDIR/$db-$NOW.sql.gz
     15     if [ $? == 0 ];then
     16         echo "$NOW--$db  backup succeeded!" >> $LOG
     17     else
     18         echo "$db backup failed!" >> $LOG
     19     fi
     20 done
     21
     22 rsync -az  --delete  /data/mysql/* root@192.168.1.252:/data/backup
     23 if [ $? == 0 ];then
     24         echo "$NOW Remote backup succeeded!" >> $LOG
     25 else
     26         echo "$NOW Remote backup failed!" >> $LOG
     27 fi
     28
     29 find $BAKDIR -type f -mtime +60 |xargs rm -rf
     30 echo "mysql bakup end at `date`" >>$LOG
    
    1. 给脚本添加可执行权限
    chmod +x /etc/mysql-backup.sh
    
    1. 设定每天凌晨3点定时执行该shell脚本
      crontab -e
      0 3 * * * /etc/mysql-backup.sh

    2. 我们执行脚本,测试一下吧
      在这里插入图片描述

    最后再啰嗦一句

    导入数据库语法:

    mysql -u用户名 -p密码 数据库名 < 数据库名.sql

    更多IT技术,请微信搜索公众号秦露露或者扫描下方二维码关注

    在这里插入图片描述

    十年磨一剑
  • 相关阅读:
    C#中的abstract、virtual、interface关键字
    tsql字符串截取
    C# byte换算
    apple-mobile-web-app-capable
    Content-Security-Policy
    sqlserver建立连接服务器
    20 ViewPager Demo4自动轮播
    20 ViewPager Demo3指示器
    20ViewPager demo1,2:接收ViewPager展示View的使用
    有没有最好的学习Angularjs2的视频入门体验?
  • 原文地址:https://www.cnblogs.com/qinlulu/p/12489293.html
Copyright © 2020-2023  润新知