MySQL & UDF sys_exec echo niet direct, maar wel via bash

Pagina: 1
Acties:

Vraag


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Mijn vraag
Op mijn MySQL installatie gebruik ik een UDF script: http://www.mysqludf.org/
Om precie ste zijn het SYS script. Op zich werkt dit prima, maar ik heb nu een tijdelijke oplossing bedacht voor een probleem welke ik niet zelf opgelost krijg.
Als ik namelijk via sys_exec het volgende commando execute:

code:
1
2
SET @MsgString = CONCAT("/var/lib/mysql-files/msgextract ","\"echo \\\"msg 1329 'Empfänger:  \\n   OperatornArbeitsplatz: '\\\" | nc 127.0.0.1 2391\"");
SET @TMP_Var = sys_exec(@MsgString);


Waarbij het bash script er als volgt uit ziet:
code:
1
2
3
#!/bin/bash
SQLMsg="$1"
eval "$SQLMsg"


Wat ik echter het liefste zou willen is het huidige bash elimineren. Het zou er dan als volgt uit komen te zien (als het zou werken):
code:
1
2
SET @MsgString = "echo \\\"msg 1329 'Empfänger:  \\n   OperatornArbeitsplatz: '\\\" | nc 127.0.0.1 2391";
SET @TMP_Var = sys_exec(@MsgString);


Is er iemand die me kan vertellen waarom mijn huidige versie wel werkt en mijn gewenste versie niet.

Relevante software en hardware die ik gebruik
- Ubuntu LTS 16 64 bit
- MySQL (uit apt-get)
- UDF SYS van http://www.mysqludf.org/

Wat ik al gevonden of geprobeerd heb
Mijn huidige oplossing is als work-around. Heb veel gespeeld met escape characters, maar dit helpt me nog niks.
Is er iets anders wat ik moet doen?