首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略备份脚本中的mysql表

忽略备份脚本中的mysql表
EN

Stack Overflow用户
提问于 2012-06-29 01:55:39
回答 2查看 111关注 0票数 0

我正在遵循this站点上的指南,并尝试排除名称为turnkey的数据库。

代码语言:javascript
运行
复制
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-29 02:05:22

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

代码语言:javascript
运行
复制
 grep -v turnkey

您将省略其中包含单词“交钥匙”的所有行。

如下所示:

代码语言:javascript
运行
复制
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | 
cut -d'/' -f5 | 
grep -v ^mysql\$ |
grep -v turnkey 
tr \\\r\\\n ,\ `

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

你可以这样做:

代码语言:javascript
运行
复制
SELECT SCHEMA_NAME FROM `information_schema`.`SCHEMATA` 
 WHERE SCHEMA_NAME NOT LIKE '%turnkey%'
 ORDER BY SCHEMA_NAME
票数 1
EN

Stack Overflow用户

发布于 2012-06-29 02:05:20

您可以使用一个稍微改进的脚本,而不需要任何额外的实用程序,只需使用纯find:

代码语言:javascript
运行
复制
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d ! \( -name turnkey -or -name mysql \) -printf "%f "

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

代码语言:javascript
运行
复制
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v "^mysql\$\|^turnkey$" | tr \\\r\\\n ,\ `
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11250296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档