第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 jsch session 和 channelexec 執(zhí)行多個命令

使用 jsch session 和 channelexec 執(zhí)行多個命令

阿波羅的戰(zhàn)車 2021-10-13 14:01:53
我努力讓它工作,但最終讓腳本在遠程 unix 服務器上執(zhí)行命令(執(zhí)行 sh 腳本)。我正在嘗試執(zhí)行第二個命令并在創(chuàng)建新頻道或使用相同頻道時不斷收到錯誤消息。       try {            ((ChannelExec) channel).setCommand(command);            PrintStream out= new PrintStream(channel.getOutputStream());            InputStream in = channel.getInputStream();            channel.connect();            BufferedReader scriptReader= new BufferedReader(new InputStreamReader(in));            scriptOutput = scriptReader.readLine();            sb = new StringBuilder();            while ((scriptOutput = scriptReader.readLine())!= null) {                sb.append(scriptOutput + "\n");這是頻道執(zhí)行的第一個片段,效果很好。現(xiàn)在,在使用上述輸入流后立即調用下一個方法片段:      try {          StringBuilder sb = new StringBuilder();          command = new_command;          ((ChannelExec) channel).setCommand(command);          InputStream in = channel.getInputStream();          channel.connect();          BufferedReader scriptReader= new BufferedReader(new InputStreamReader(in));          scriptOutput = scriptReader.readLine();            //StringBuilder sb = new StringBuilder();          for(int c=0; c < consumerList.size(); c++){           ....現(xiàn)在返回以下錯誤:com.jcraft.jsch.JSchException: channel is not opened.現(xiàn)在,如果我使用相同的會話創(chuàng)建一個新頻道,我會從返回的流中得到一個空響應。我確實在遠程 shell 中測試了命令,它工作正常:      int counter = 0;      Channel channelII = session.openChannel("exec");      try {          StringBuilder sb = new StringBuilder();          command = new_command;          ((ChannelExec) channelII).setCommand(command);          InputStream in = channelII.getInputStream();          channelII.connect();          BufferedReader scriptReader= new BufferedReader(           new InputStreamReader(in));          scriptOutput = scriptReader.readLine();第二個命令如下,我希望能夠為不同的消費者群體重復執(zhí)行它:/usr/kafka/bin/kafka-consumer-groups.sh --bootstrap-server     192.xxx.xx.xxx:9092 --describe -group consumergroup1
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

我弄清楚出了什么問題并想發(fā)布一個答案,因為我確實意識到這樣的小事情確實會出現(xiàn)在我們那里的“愚蠢”程序員身上,他們提出荒謬的問題會招致反對票。第二個命令的輸出在第一行返回警告/錯誤響應,并且不包含以下內容,我沒有看到,閱讀下一行是空的。我知道這很愚蠢,應該在發(fā)布之前弄清楚這一點,因為這就是本網站的重點:發(fā)布其他人不知道的問題。但既然我天生就應該知道這一點:


無論如何確保包括以下行:


  ((ChannelExec)channelII).setErrStream(System.err);

并且還使用循環(huán)讀取流,而不僅僅是通過讀取第一行進行測試。


     while ((scriptOutput = scriptReader.readLine())!= null) {

                sb.append(scriptOutput + "\n");

          }

我希望這至少可以成為一些人的教訓,如果不是解決方案的話。


查看完整回答
反對 回復 2021-10-13
  • 1 回答
  • 0 關注
  • 3128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號