在mysql中用mysqldump命令备份数据时,如果排除掉某些不想要的表的方法。 测试用的数据库为restdb来举例吧,备份时要求排除掉 snmp_query_graph_rrd_sv表和 rra表。
首先,把需要备份的表列出来: mysql -u root restdb -e "show tables;" | awk '!/rra/&&!/snmp_query_graph_rrd_sv/'
[root@nodec 02]# mysql -u root restdb -e "show tables;" | awk '!/rra/&&!/snmp_query_graph_rrd_sv/'
那两个表没了,可是Tables_in_restdb还在,没关系,加上即可:
mysql -u root restdb -e "show tables;" | awk '!/Tables_in_restdb/&&!/rra/&&!/snmp_query_graph_rrd_sv/'
现在变量有了,下面开始写备份脚本了。
#!/bin/bash
i=`mysql -u root restdb -e "show tables;" | awk '!/Tables_in_restdb/&&!/rra/&&!/snmp_query_graph_rrd_sv/'` mysqldump -u root restdb $i >> ufo.sql
方法2,使用for循环
#!/bin/bash
i=`mysql -u root restdb -e "show tables;" | awk '!/Tables_in_restdb/&&!/rra/&&!/snmp_query_graph_rrd_sv/'` for k in $i do mysqldump -u root restdb $k >> ufo.sql done
保存为back_mysql.sh,加上+x可执行权限即可运行了。 (责任编辑:IT) |