This shell script finds all the tables for a database and run a command against it.
See File optimize-tables
The file’s contents are below as well:
03 | </span><span class= "com" > |
04 | </span><span class= "com" > |
05 | </span><span class= "com" > |
06 | </span><span class= "com" > |
07 | </span><span class= "com" > |
08 | </span><span class= "com" > |
10 | DBNAME</span><span class= "pun" >=</span><span class= "pln" > $2 |
12 | printUsage</span><span class= "pun" >()</span><span class= "pln" > </span><span class= "pun" >{</span><span class= "pln" > |
13 | echo </span><span class= "str" > "Usage: $0" </span><span class= "pln" > |
14 | echo </span><span class= "str" > " --optimize <dbname>" </span><span class= "pln" > |
15 | echo </span><span class= "str" > " --repair <dbname>" </span><span class= "pln" > |
16 | </span><span class= "kwd" >return</span><span class= "pln" > |
17 | </span><span class= "pun" >}</span><span class= "pln" > |
20 | doAllTables</span><span class= "pun" >()</span><span class= "pln" > </span><span class= "pun" >{</span><span class= "pln" > |
21 | </span><span class= "com" > |
22 | TABLENAMES</span><span class= "pun" >=</span><span class= "str" >`mysql -D $DBNAME -e "SHOW TABLES\G;" |grep 'Tables_in_' |sed -n 's/.*Tables_in_.*: \([_0-9A-Za-z]*\).*/\1/p' `</span><span class= "pln" > |
24 | </span><span class= "com" > |
25 | </span><span class= "kwd" >for</span><span class= "pln" > TABLENAME </span><span class= "kwd" >in</span><span class= "pln" > $TABLENAMES |
26 | </span><span class= "kwd" >do</span><span class= "pln" > |
27 | mysql </span><span class= "pun" >-</span><span class= "pln" >D $DBNAME </span><span class= "pun" >-</span><span class= "pln" >e </span><span class= "str" > "$DBCMD TABLE $TABLENAME;" </span><span class= "pln" > |
28 | </span><span class= "kwd" >done</span><span class= "pln" > |
29 | </span><span class= "pun" >}</span><span class= "pln" > |
31 | </span><span class= "kwd" >if</span><span class= "pln" > </span><span class= "pun" >[</span><span class= "pln" > $</span><span class= "com" > |
33 | </span><span class= "kwd" >exit</span><span class= "pln" > </span><span class= "lit" >1</span><span class= "pln" > |
34 | </span><span class= "kwd" >fi</span><span class= "pln" > |
36 | </span><span class= "kwd" >case</span><span class= "pln" > $1 </span><span class= "kwd" >in</span><span class= "pln" > |
37 | </span><span class= "pun" >--</span><span class= "pln" >optimize</span><span class= "pun" >)</span><span class= "pln" > DBCMD</span><span class= "pun" >=</span><span class= "pln" >OPTIMIZE</span><span class= "pun" >;</span><span class= "pln" > doAllTables</span><span class= "pun" >;;</span><span class= "pln" > |
38 | </span><span class= "pun" >--</span><span class= "pln" >repair</span><span class= "pun" >)</span><span class= "pln" > DBCMD</span><span class= "pun" >=</span><span class= "pln" >REPAIR</span><span class= "pun" >;</span><span class= "pln" > doAllTables</span><span class= "pun" >;;</span><span class= "pln" > |
39 | </span><span class= "pun" >--</span><span class= "pln" >help</span><span class= "pun" >)</span><span class= "pln" > printUsage</span><span class= "pun" >;</span><span class= "pln" > </span><span class= "kwd" >exit</span><span class= "pln" > </span><span class= "lit" >1</span><span class= "pun" >;;</span><span class= "pln" > |
40 | </span><span class= "pun" >*)</span><span class= "pln" > printUsage</span><span class= "pun" >;</span><span class= "pln" > </span><span class= "kwd" >exit</span><span class= "pln" > </span><span class= "lit" >1</span><span class= "pun" >;;</span><span class= "pln" > |
41 | </span><span class= "kwd" >esac</span><span class= "pln" > |