Poradil by mi někdo, jak v Groovy spustit příkaz v pseudo-terminálu nebo mu nějak podstrčit šířku terminálu? Konkrétně mi jde o to, že se chci připojit v Groovy scriptu přes SSH na Mikrotik a získat seznam hostů v síti. Potíž je v tom, že výstup z Mikrotiku je zkrácený, takže namísto výstupu jako např.
Flags: D - dhcp
ADDRESS MAC-ADDRESS TIME DNS SNMP NETBIOS
192.168.1.10 00:21:B7:83:BB:6C 2ms ET0021B783BB6C
192.168.1.30 00:25:36:B1:C0:10 4ms OKI-C834-B1C010
dostanu jen:
Flags: D - dhcp
ADDRESS MAC-ADDRESS TIME DNS SNMP NETBIOS
192.168.1.10 00:21:B7:83:BB:6C 5ms ET0021B7...
192.168.1.30 00:25:36:B1:C0:10 4ms OKI-C834...
V konzoli se tenhle problém dá řešit tak, že se ssh zavolá s parametrem -t, který naalokuje pty. To tady ale nefunguje. Věděl by někdo, jak to obejít? Klíčový kód vypadá nějak takto:
String shellcmd = "ssh -o StrictHostKeyChecking=no admin@172.16.122.56 /tool ip-scan duration=3 address-range=192.168.1.0/24"
String[] cmd = ["sh", "-c", shellcmd];
stdout = new java.io.BufferedReader(new java.io.InputStreamReader(Runtime.getRuntime().exec(cmd).getInputStream()));
while ((s = stdout.readLine()) != null) {
println(s)
}