繁体   English   中英

忽略备份脚本中的mysql表

[英]ignore mysql tables in backup script

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

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

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

您显示的命令是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服务器守护程序软件的特定磁盘结构,该结构不属于系统正式规范。 换句话说,它可能会改变。

您可以这样做:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM