tunnel ssh à la base de données.J'essaie d'écrire un script qui utilise un tunnel SSH vers une base de données afin d'y accéder. Je ne peux pas le faire fonctionner. Quelqu'un d'autre a déjà essayé ça?
J'ai déjà configuré ma clé ssh et je peux exécuter la base de données ouverte et la renvoyer si j’exécute la commande ssh dans une fenêtre cmd séparée du script, mais j’aimerais bien pouvoir tout intégrer dans le fichier JSL ne pas avoir à oublier d'ouvrir le tunnel).
Names default to here(1);
rp = Run Program(
executable("ssh.exe"),
Options({"-tt", "-L 1414:localhost:1414", "test@test.com"}),
ReadFunction( "text" )
);
dt = open database(
"cxn_string",
"SELECT * FROM Test",
"Test"
);
rp << Write EOF();
Merci d'avance.
Re: tunnel SSH à la base de données.Je suppose que RunProgram attend pour toujours, en essayant d’obtenir toute la sortie de ssh.exe.
ReadFunction ("text") qui signifie que RunProgram doit bloquer jusqu'à la fin du programme, puis renvoyer tout texte produit par le programme (probablement aucun dans votre exemple).
Cela ne bloquera pas et ne copiera aucune sortie dans le journal:
ReadFunction(
Function( {this},
write(this << read);
)
)Si cela fonctionne, rp (dans votre exemple d'origine) sera l'objet runprogram plutôt que le texte renvoyé.
https://community.jmp.com/t5/Uncharted/JSL-to-Control-Raspberry-Camera/ba-p/226243 utilise plink.exe, ce qui est probablement équivalent à ssh.exe. Je devais utiliser
rp <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Write</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"exit\!n"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
pour obtenir une déconnexion propre; Je pensais que rp << writeeof devrait fonctionner, mais sans succès.
Re: tunnel SSH à la base de données.D'ah. J'aurais du y penser. Merci.