Escriba las salidas de aplicaciones a la base de datos MySQL con Script Linux
Pregunta
¿Puede alguien decirme cómo escribir las salidas de una aplicación a MySQL usando Bash Script? Por ejemplo, una aplicación Java con el siguiente código
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println("Message 1!");
System.out.println("Message 2!");
System.out.println("Message 3!");
}
}
Quiero producir 4 filas en la tabla para cada sistema .Out
Intenté ese script
app_name="HelloWorld"
app_output=$(java $app_name);
mysql -u<username> -p'<password>' <db_name> <<_EOF_
INSERT INTO logs_tbl (app_name,text) VALUES ("$app_name","$app_output");
_EOF_
Pero el problema es que produce una fila cuando la aplicación sale con valor: ¡Hola mundo! ¡Mensaje 1! ¡Mensaje 2! Mensaje 3!
Solución
Intente lo siguiente:
#!/bin/bash
app_name="HelloWorld"
java $app_name | while read line
do
echo "INSERT INTO logs_tbl (app_name,text) VALUES ('$app_name','$line');" | mysql -u <username> -p '<password>' <db_name>
done
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow