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