脚本学习之一---菜鸟级别入门---mysql简单分库备份【二】

在“脚本学习之一---菜鸟级别入门---mysql简单分库备份【一】”的是有一个弊端的,就是数据库的库名都是我们手动写的。那么我们有没有办法从数据库里面把库名取出来呢?答案是肯定的如下

因为performance_schema和information_schema数据库5.5.32安装默认就有的,我们备份的时候不要备份,因此我们哟啊过滤掉。

[root@demo scripts]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e"show databases;"

+--------------------+

| Database           |

+--------------------+

| information_schema |

| binlog             |

| liu                |

| mysql              |

| oldboy             |

| performance_schema |

| qq                 |

| riziwenjian        |

| shaopeng           |

| shujuku            |

| test               |

| uu                 |

| wodeshujk          |

| xindata            |

| zonglizhu          |

+--------------------+

[root@demo scripts]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e"show databases"

+--------------------+

| Database           |

+--------------------+

| information_schema |

| binlog             |

| liu                |

| mysql              |

| oldboy             |

| performance_schema |

| qq                 |

| riziwenjian        |

| shaopeng           |

| shujuku            |

| test               |

| uu                 |

| wodeshujk          |

| xindata            |

| zonglizhu          |

+--------------------+

[root@demo scripts]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e"show databases"|sed '1,2d'

binlog

liu

mysql

oldboy

performance_schema

qq

riziwenjian

shaopeng

shujuku

test

uu

wodeshujk

xindata

zonglizhu

[root@demo scripts]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e"show databases"|sed '1,2d'|egrep -v "schema"

binlog

liu

mysql

oldboy

qq

riziwenjian

shaopeng

shujuku

test

uu

wodeshujk

xindata

zonglizhu

[root@demo scripts]# vim fenku_bak_auto.sh

#!/bin/sh

for dbname in `mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e"show databases"|sed '1,2d'|egrep -v "schema"`

do

       mysqldump -uroot -poldboy123 --skip-lock-tables -S /data/3306/mysql.sock -F -B ${dbname}|gzip >/server/backup/${dbname}_$(da

te +%F).sql.gz

done

[root@demo scripts]# sh fenku_bak_auto.sh

-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

[root@demo scripts]# ll /server/backup/  

总用量 192

-rw-r--r-- 1 root root    511 1月  17 20:00 binlog_2014-01-17.sql.gz

-rw-r--r-- 1 root root    508 1月  17 20:00 liu_2014-01-17.sql.gz

-rw-r--r-- 1 root root 144320 1月  17 20:00 mysql_2014-01-17.sql.gz

-rw-r--r-- 1 root root    938 1月  17 20:00 oldboy_2014-01-17.sql.gz

-rw-r--r-- 1 root root    509 1月  17 20:00 qq_2014-01-17.sql.gz

-rw-r--r-- 1 root root    517 1月  17 20:00 riziwenjian_2014-01-17.sql.gz

-rw-r--r-- 1 root root    513 1月  17 20:00 shaopeng_2014-01-17.sql.gz

-rw-r--r-- 1 root root    513 1月  17 20:00 shujuku_2014-01-17.sql.gz

-rw-r--r-- 1 root root    511 1月  17 20:00 test_2014-01-17.sql.gz

-rw-r--r-- 1 root root    509 1月  17 20:00 uu_2014-01-17.sql.gz

-rw-r--r-- 1 root root    515 1月  17 20:00 wodeshujk_2014-01-17.sql.gz

-rw-r--r-- 1 root root    511 1月  17 20:00 xindata_2014-01-17.sql.gz

-rw-r--r-- 1 root root    515 1月  17 20:00 zonglizhu_2014-01-17.sql.gz

-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.备份mysql库,就会有这个。解决方法:

[root@demo scripts]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e"show databases"|sed '1,2d'|egrep -v "mysql|schema"

binlog

liu

oldboy

qq

riziwenjian

shaopeng

shujuku

test

uu

wodeshujk

xindata

zonglizhu




本文出自 “8055082” 博客,谢绝转载!

你可能感兴趣的:(mysql简单分库备份脚本)