Linux Shell经典面试题(其五)

Linux Shell经典面试题(其五)

参考:http://jin771998569.blog.51cto.com/2147853/1639712

1.如何实现对MySQL数据库进行分库备份,请用脚本实现。

############mysql的分库备份脚本mysql-differ-database-backups.sh 的脚本编写##############

$ vi mysql-differ-database-backups.sh

#!/bin/bash
MYUSER=root
MYPASS=password
SOCKET="/var/lib/mysql/mysql.sock"
MYCMD="mysql -u$MYUSER -p$MYPASS"
MYDUMP="mysqldump -u$MYUSER -p$MYPASS"
BACKUP_DIR="/work/backup/mysql"

for database in `$MYCMD -e "show database;"|sed '1,2d' | egrep -v "mysql|schema"`
do
    if [! -f $BACKUP_DIR/${database} ];then
        mkdir -p $BACKUP_DIR/${database}
    fi
    $MYDUMP ${database} | gzip > $BACKUP_DIR/${database}_`date +%F`.tar.gz
done

2.如何实现对MySQL数据库进行分库加分表备份,请用脚本实现。

############mysql的分库+分表备份脚本mysql-differ-database-table-backups.sh 的脚本编写##############

$ vi mysql-differ-database-table-backups.sh

#!/bin/bash
MYUSER=root
MYPASS=password
SOCKET="/var/lib/mysql/mysql.sock"
MYCMD="mysql -u$MYUSER -p$MYPASS"
MYDUMP="mysqldump -u$MYUSER -p$MYPASS"
BACKUP_DIR="/work/backup/mysql"

for database in `$MYCMD -e "show database;"|sed '1,2d' | egrep -v "mysql|schema"`
do
    if [! -f $BACKUP_DIR/${database} ];then
        mkdir -p $BACKUP_DIR/${database}
    fi
    $MYDUMP ${database} | gzip > $BACKUP_DIR/${database}_`date +%F`.tar.gz

    for i in $database
        do
            tables=`$MYCMD -e "use $i;show tables;"|sed 1d`
            for j in $tables
                do
                    MYDUMP   -B --databases $i --tables $j > $BACKUP_DIR/${i}-${j}-`date +%F`.sql
                done
        done
done
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值