Si mai us heu trobat amb la necessitat de fer un mysqldump d'un conjunt de taules i no de tota la base de dades, l'script següent facilitat la feina.


#!/bin/bash

if [ $# -lt 5 ]; then
echo "Exports data from mysql database in tables matching a like pattern e.g. 'table_%'"
echo "Usage: $0 dbname dbuser dbpass pattern outputfile"
exit 1
fi

DBNAME=$1
DBUSER=$2
DBPASS=$3
PATTERN=$4
OUTPUTFILE=$5

TABLES=( `mysql -u$DBUSER -p$DBPASS $DBNAME --silent -e "show tables like '$PATTERN'"` )

for TABLE in "${TABLES[@]}"; do
mysqldump -u$DBUSER -p$DBPASS $DBNAME $TABLE >> $OUTPUTFILE
done


 

L'script permet fer un mysqldump de les taules que responen a un patró en concret. Així dons, per fer un dump de totes les taules de la base de dades 'basededades' que comencen per 'sales' cal executar:


./mysqldump_bypattern.sh basedades usuari password sales% fitxer_de_sortida.dump

 

L'script es pot descarregar aquí.