忽略备份脚本中的mysql表

时间:2012-06-28 17:55:39

标签: mysql shell command backup

我正在关注this网站上的指南,并尝试排除名称为turnkey的数据库。

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `

此命令返回所有数据库名称,如何删除交钥匙名称?

2 个答案:

答案 0 :(得分:1)

您显示的命令是Linux / unix shell命令。如果你添加另一个步骤

 grep -v turnkey

你将省略任何带有“turnkey”字样的行。

像这样:

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | 
cut -d'/' -f5 | 
grep -v ^mysql\$ |
grep -v turnkey 
tr \\\r\\\n ,\ `

你没有问这是不是一个好主意。我认为不是这样,因为它依赖于MySQL服务器守护程序软件的特定ondisk结构,而不是系统正式规范的一部分。换句话说,它可能会改变。

你可以这样做:

SELECT SCHEMA_NAME FROM `information_schema`.`SCHEMATA` 
 WHERE SCHEMA_NAME NOT LIKE '%turnkey%'
 ORDER BY SCHEMA_NAME

答案 1 :(得分:0)

您可以使用一些改进的脚本而无需任何其他实用程序,只需使用纯查找:

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d ! \( -name turnkey -or -name mysql \) -printf "%f "

或者只需修改您的变体,在turnkey语句中添加grep -v即可将其从列表中排除:

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v "^mysql\$\|^turnkey$" | tr \\\r\\\n ,\ `