tunnel SSH al database.Sto cercando di scrivere uno script che utilizza un tunnel SSH in un database per accedervi. Non riesco a farlo funzionare. Qualcun altro ha provato questo prima?
Ho già impostato la mia chiave ssh e posso eseguire il database aperto e farlo tornare se eseguo il comando ssh in una finestra cmd separata dallo script, ma mi piacerebbe se potessi integrare tutto nella JSL (quindi gli utenti non devi ricordare di aprire il 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();
Grazie in anticipo.
Ri: tunnel SSH al database.Immagino che RunProgram aspetti per sempre, cercando di ottenere tutto l'output da ssh.exe.
ReadFunction ("testo") che significa che RunProgram dovrebbe bloccarsi fino al termine del programma, quindi restituire qualsiasi testo prodotto dal programma (probabilmente nessuno nel tuo esempio.)
Questo non bloccherà e copierà qualsiasi output nel registro:
ReadFunction(
Function( {this},
write(this << read);
)
)Se funziona, rp (nell'esempio originale) sarà l'oggetto runprogram anziché il testo restituito.
https://community.jmp.com/t5/Uncharted/JSL-to-Control-Raspberry-Camera/ba-p/226243 usa plink.exe, che probabilmente equivale a ssh.exe. Ho dovuto usare
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>
per ottenere una disconnessione pulita; Ho pensato che rp << writeeof avrebbe funzionato ma non ha avuto successo.
Ri: tunnel SSH al database.D'ah. Avrei dovuto pensarci. Grazie.