como dijo LukeR, la opción --no-data para mysqldump hará lo que quieras.
Para agregar a eso, aquí hay un script de copia de seguridad que escribí que volca todas las bases de datos mysql en archivos de texto sin formato, y crea archivos de volcado separados para el esquema y los datos de la tabla de cada base de datos (es bastante común querer restaurar o crear las tablas en otro servidor mysql SIN los datos, y eso es mucho más fácil de hacer cuando ya tiene un archivo pequeño con solo los comandos CREATE TABLE / CREATE INDEX, etc.)
#! / bin / bash
# backup-mysql.sh
# #
# Craig Sanders <cas@taz.net.au>
# este script está en el dominio público. Haz lo que quieras con eso.
MYUSER = "NOMBRE DE USUARIO"
MYPWD = "PASSWD"
ARGS = "- transacción única - registros de descarga - inserción completa"
BASES DE DATOS = $ (mysql -D mysql --skip-column-names -B -e 'mostrar bases de datos;' | egrep -v 'information_schema');
BACKUPDIR = / var / backups / mysql
AÑO = $ (fecha + "% Y")
MES = $ (fecha + "% m")
DIA = $ (fecha + "% d")
FECHA = "$ AÑO- $ MES / $ AÑO- $ MES- $ DÍA"
mkdir -p $ BACKUPDIR / $ DATE
cd $ BACKUPDIR / $ DATE
para i en $ BASES DE DATOS; hacer
echo -n "copia de seguridad de $ i: esquema ..."
mysqldump $ ARGS --no-data -u $ MYUSER -p $ MYPWD $ i> $ i.schema.sql
echo -n "datos ..."
mysqldump $ ARGS --skip-opt --no-create-db --no-create-info -u $ MYUSER -p $ MYPWD $ i> $ i.data.sql
echo -n "comprimiendo ..."
gzip -9fq $ i.schema.sql $ i.data.sql
echo "hecho".
hecho
# eliminar archivos de respaldo de más de 30 días
OLD = $ (find $ BACKUPDIR -type d -mtime +30)
si [-n "$ VIEJO"]; luego
echo borrando viejos archivos de respaldo: $ OLD
echo $ ANTIGUO | xargs rm -rfv
fi