que he estado tratando de conseguir un script de shell (bash) para insertar una fila en una base de datos remota, pero he estado teniendo algunos problemas :(El uso de shell script para insertar datos en la base de datos MySQL remota
El script está destinado a cargar un archivo a un servidor, obtener una URL, HASH, y un tamaño de archivo, conectarse a una base de datos remota mysql, e insertar los datos en una tabla existente. He estado trabajando hasta que la base de datos MYSQL remota mordió.
Parece que este:
#!/bin/bash
zxw=randomtext
description=randomtext2
for file in "[email protected]"
do
echo -n *****
ident= *****
data= ****
size=` ****
hash=`****
mysql --host=randomhost --user=randomuser --password=randompass randomdb
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
echo "done"
done
soy un novato total al programación entonces yeh: P
De todos modos, agregué el \ para escapar de los corchetes ya que estaba recibiendo errores. Como es ahora, el script funciona bien hasta que se conecta a la base de datos mysql. Simplemente se conecta a la base de datos mysql y no hace el comando de inserción (y ni siquiera sé si el comando insert funcionaría en bash).
PD: He intentado los comandos mysql desde la línea de comandos uno por uno, y funcionaron, aunque definí el hash/file/size y no tuve el escape "\".
De todos modos, ¿qué piensan? ¿Lo que estoy tratando de hacer es posible? ¿Si es así, cómo?
Cualquier ayuda se agradece :)
Obteniendo este error con eso: línea 22: advertencia: aquí-documento en la línea 19 delimitado por fin de archivo (deseado 'EOF ') línea 23: línea 23: error de sintaxis: inesperado final del archivo – lelouch
@lelouch - usted se fue fuera del "EOF" en la tercera línea de arriba. Es importante implementar toda la solución, no solo la primera mitad. –
Hmm nah, claramente agregué el << EOF en la línea mysql, y otro EOF en una nueva línea después del insert. ¿Alguna idea sobre qué está mal? – lelouch