簡體   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