[英]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.