#!/bin/bash MYSQL_HISTFILE=/dev/null SQL_USER="" SQL_PASS="" SQL_DB="" TABNAME="" SQLCMD="mysql ${SQL_DB} --batch -u ${SQL_USER} -p${SQL_PASS}"; declare -i TABNUMBER=12; for t in ${TABNAME}; do # create table 0 echo "CREATE TABLE IF NOT EXISTS ${t}_0 LIKE ${t};" | $SQLCMD; # delete table 12 echo "DROP TABLE IF EXISTS ${t}_$TABNUMBER;" | $SQLCMD; # move table from 2 to 11 FLUSH="" STRING="" for TABLE in $(seq 2 $((${TABNUMBER}-1))); do # teste si la table existe if echo "DESCRIBE ${t}_${TABLE};" | ${SQLCMD} >/dev/null 2>&1; then FLUSH="${t}_${TABLE}, ${FLUSH}" STRING="${t}_${TABLE} TO ${t}_$((${TABLE}+1)),\ ${STRING}"; fi done # move table from 0 and 1 FLUSH="${FLUSH}${t}" STRING="${STRING}${t} TO ${t}_2, ${t}_0 TO ${t}" # atomic echo "FLUSH TABLES ${FLUSH}; RENAME TABLE ${STRING};" | ${SQLCMD} >/dev/null 2>&1 #compress 2 cd /var/lib/mysql/${SQL_DB}/ echo "FLUSH TABLE ${t}_2;" | $SQLCMD myisampack -s "${t}_2.MYI" myisamchk -s -rq --sort-index --analyze "${t}_2.MYI" echo "FLUSH TABLE ${t}_2" | $SQLCMD done