SHELL——备份脚本

编写脚本,使用mysqldump实现分库分表备份。


1、获取分库备份的库名列表

[root@web01 scripts]# mysql -uroot -p123456 -e "show databases;" | egrep -v "Database|information_schema|mysql|performance_schema|sys"
mysql: [Warning] Using a password on the command line interface can be insecure.
db1
it
wp

 2、编写备份脚本

#!/bin/bash
##############################################################
# File Name: db_table2.sh
# Version: V1.0
# Author: wp
# Email: [email protected]
# Organization: http://www.xx.com/xx/
# Created Time : 2023-07-31 06:54:13
# Description:
##############################################################
#定义数据库连接信息
bak_user=root
bak_passwd=123456
#定义备份文件存储目录
bak_path=/server/dbbak
bak_cmd="-u$bak_user -p$bak_passwd"
#定义要排除的数据名
exclude_db="Database|information_schema|mysql|performance_schema|test"
db_name=`mysql $bak_cmd -e "show databases;" | egrep -v $exclude_db`
for db in `echo $db_name`
do
 [ -d ${bak_path}/$db ] || mkdir -p ${bak_path}/$db
 table_name=`mysql $bak_cmd -e "use $db;show tables;" | grep -v "Tables_in"`
 for table in `echo ${table_name}`
 do
  mysqldump $bak_cmd $db $table |gzip > $bak_path/${db}/${db}_${table}.`date +%Y%m%d`.sql.gz
 done
done

3、执行脚本,查看备份情况

[root@web01 scripts]# vim db_table2.sh
[root@web01 scripts]# ll /server/dbbak
total 12
drwxr-xr-x. 2 root root   96 Jul 31 06:56 db1
drwxr-xr-x. 2 root root    6 Jul 31 06:56 it
drwxr-xr-x. 2 root root 8192 Jul 31 06:56 sys
drwxr-xr-x. 2 root root    6 Jul 31 06:56 wp

SHELL——备份脚本_第1张图片

 

你可能感兴趣的:(android,bash,运维,linux,mysql)