shell脚本,对MySQL数据库进行分库加分表备份

复制代码
[root@localhost wyb]# cat table_backup.sh 
#!/bin/bash

flag=0
user=root
pass=test

mysql -u$user -p"$pass" -e "show databases;" &>/dev/null
[ $? -ne 0  ] && read -p "Mysql do not running,start it?(`echo -e "\033[32myes/no\033[0m"`):" choice && flag=1
[[ "choice" -eq "yes" ]] && service mysqld start &>/dev/null && flag=0
[ $flag -eq 1 ] && exit 2
database=`mysql -u$user -p$pass  -e "show databases;"|sed 1d|grep -v 'schema'`

echo -e "\033[32m==================backup start=====================\033[0m"
for i in $database
do
  tables=`mysql -u$user -p"$pass" -e "use $i;show tables;"|sed 1d`
  for j in $tables
  do
    mysqldump -u$user -p"$pass"   -B --databases $i --tables $j > /tmp/${i}-${j}-`date +%F`.sql
   [ $? -eq 0 ] && echo $i $j ok >>/tmp/table.log||echo $i $j failed >>/tmp/table.log
   [ $? -eq 0 ] && echo -e "$i $j \033[32mok\033[0m" ||echo -e "$i $j \033[31mfailed\033[0m"
  done

done
echo -e "\033[32m===================backup stop=======================\033[0m"
[root@localhost wyb]# bash table_backup.sh 
==================backup start=====================
mysql columns_priv ok
mysql db ok
mysql func ok
mysql help_category ok
mysql help_keyword ok
mysql help_relation ok
mysql help_topic ok
mysql host ok
mysql proc ok
mysql procs_priv ok
mysql tables_priv ok
mysql time_zone ok
mysql time_zone_leap_second ok
mysql time_zone_name ok
mysql time_zone_transition ok
mysql time_zone_transition_type ok
mysql user ok
===================backup stop=======================
[root@localhost wyb]# cd tmp
-bash: cd: tmp: No such file or directory
[root@localhost wyb]# cd /tmp
[root@localhost tmp]# ls
a.log                              mysql-help_category-2016-09-07.sql  mysql-tables_priv-2016-09-07.sql                table.log
dashazi123.sh                      mysql-help_keyword-2016-09-07.sql   mysql-time_zone-2016-09-07.sql                  VMwareDnD
keyring-cmzNiY                     mysql-help_relation-2016-09-07.sql  mysql-time_zone_leap_second-2016-09-07.sql      vmware-root
mapping-root                       mysql-help_topic-2016-09-07.sql     mysql-time_zone_name-2016-09-07.sql             vmware-root-1723735141
mysql-columns_priv-2016-09-07.sql  mysql-host-2016-09-07.sql           mysql-time_zone_transition-2016-09-07.sql       VMwareTools-9.6.2-1688356.tar.gz
mysql-db-2016-09-07.sql            mysql-proc-2016-09-07.sql           mysql-time_zone_transition_type-2016-09-07.sql  vmware-tools-distrib
mysql-func-2016-09-07.sql          mysql-procs_priv-2016-09-07.sql     mysql-user-2016-09-07.sql
[root@localhost tmp]# ls mysql*
mysql-columns_priv-2016-09-07.sql   mysql-help_topic-2016-09-07.sql   mysql-time_zone_leap_second-2016-09-07.sql
mysql-db-2016-09-07.sql             mysql-host-2016-09-07.sql         mysql-time_zone_name-2016-09-07.sql
mysql-func-2016-09-07.sql           mysql-proc-2016-09-07.sql         mysql-time_zone_transition-2016-09-07.sql
mysql-help_category-2016-09-07.sql  mysql-procs_priv-2016-09-07.sql   mysql-time_zone_transition_type-2016-09-07.sql
mysql-help_keyword-2016-09-07.sql   mysql-tables_priv-2016-09-07.sql  mysql-user-2016-09-07.sql
mysql-help_relation-2016-09-07.sql  mysql-time_zone-2016-09-07.sql
[root@localhost tmp]# cat table.log 
mysql columns_priv ok
mysql db ok
mysql func ok
mysql help_category ok
mysql help_keyword ok
mysql help_relation ok
mysql help_topic ok
mysql host ok
mysql proc ok
mysql procs_priv ok
mysql tables_priv ok
mysql time_zone ok
mysql time_zone_leap_second ok
mysql time_zone_name ok
mysql time_zone_transition ok
mysql time_zone_transition_type ok
mysql user ok
[root@localhost tmp]# 
复制代码

 

posted on   王月波  阅读(1487)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示