Tema:
Cuantas veces han tenido que volcar una base de datos mysql y han tenido que tipear muchos parámetros del mysqldump ??? está bien, tambien lo pueden hacer con phpMyAdmin, pero y si no tienes acceso más que a una pantalla negra de texto ...??? (OK puedes usar lynx :))
En todo caso, aquí les va un peque script que hace el trabajo sucio:
#!/bin/bash
PROGRAM="/usr/bin/mysqldump"
USER="root"
PASSWORD="password"
BASE=`echo -n "$1" | sed s/:.*//`
FLAG=`echo -n $1 | grep ':'`
if [ -z ${FLAG} ]; then
PUERTO=3306;
else
PUERTO=`echo -n "$1" | sed s/.*://`
fi
ARCHIVO=$2
if [ -z ${ARCHIVO} ]; then
flag_puerto=0;
flag_tabla=0;
flag_archivo=0;
else
flag_puerto=1;
puerto=$PUERTO;
archivo=$ARCHIVO;
flag_base=1;
flag_tabla=1;
flag_archivo=1;
fi
if [ -z ${BASE} ];
then
flag_base=0;
else
echo "Volcando Base de datos: $BASE";
base=$BASE;
fi
while [ "${flag_base}" == "0" ];
do
read -p "Ingrese el nombre de la base de datos: " -e base
if [ -z ${base} ];
then
echo "No se ha especificado la base de datos.";
else
flag_base=1;
fi
done
while [ "${flag_puerto}" == "0" ];
do
read -p "Ingrese el puerto de conexión ($PUERTO): " -e puerto
if [ -z ${puerto} ];
then
if [ -z ${PUERTO} ];
then
echo "No se ha especificado el puerto de conexión.";
else
puerto=$PUERTO;
flag_puerto=1;
fi
else
flag_puerto=1
fi
done
if [ "${flag_tabla}" == 0 ];
then
read -p "Ingrese el nombre de la tabla (en blanco para volcar todas las tablas): " -e tabla
else
tabla=""
fi
if [ "$flag_archivo" == 0 ];
then
read -p "Ingrese el archivo destino (en blanco a PANTALLA): " -e archivo
else
archivo=$ARCHIVO;
fi
if [ -z ${archivo} ];
then
${PROGRAM} --quote-names -P ${puerto} --add-drop-table -u ${USER} -p${PASSWORD} ${base} ${tabla}
else
${PROGRAM} --quote-names -P ${puerto} --add-drop-table -u ${USER} -p${PASSWORD} ${base} ${tabla} > ${archivo}
fi
Es script te pedirá la información de:
- Base de datos a volcar
- Puerto de Conexión
- Tablas a volcar
- Archivo destino
Aunque también puede ser usado de la siguiente manera, suponiendo que el script se llama volcar:
volcar base_de_datos:3306 base_de_datos.sql
o
volcar base_de_datos base_de_datos.sql
Que les aprobeche ...
;)
Comentarios
100pre se agradece
100pre se agradece este tipo de colaboraciones.
Enhorabuena deathUser!!!
Hasta cuando seremos los pacíficos dueños de tanto absurdo.
"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net