【问题标题】:Cannot read an output file created by a script executed using JSch无法读取由使用 JSch 执行的脚本创建的输出文件
【发布时间】:2016-12-25 17:34:33
【问题描述】:
public String getMacAndServerIp(Dataset ds){
    TestLogger.info(logger,"*************   Started test method for getMacAndServerIp *****************");
    String macaddserverip="";
    String user=admin;
    String host=10.121.172.9;
    String pswd=admin;
    int port=22;
    String path= "/opt/conf/files/";

    TestLogger.info(logger,"values "+"User value::"+user+ ", "+ "Host value:"+host + "Password value:"+pswd + "Port Num'" +port);
    String command= "cd "+path+ "; ./gettingMacAndIPadd.sh &";
    TestLogger.info(logger,"Command ::"+command);

    try{
        JSch jsch = new JSch();
        com.jcraft.jsch.Session session = jsch.getSession(user, host, port);
            session.setPassword(pswd);
            session.setConfig("StrictHostKeyChecking", "no");
        TestLogger.info(logger,"Establishing Connection...");
        session.connect();
        TestLogger.info(logger,"Connected");

        Channel channel=session.openChannel("exec");
        TestLogger.info(logger,"Channel Opened");
        ((ChannelExec) channel).setCommand(command);
        TestLogger.info(logger,"Command Set");
        channel.setInputStream(null);
        ((ChannelExec) channel).setErrStream(System.err);
        InputStream in = channel.getInputStream();
        channel.connect();
        TestLogger.info(logger,"Channel connected");
        try{
            Thread.sleep(1000);
        }
        catch(Exception ee){
            ee.printStackTrace();
        }

        BufferedReader reader=new BufferedReader(new FileReader("/opt/conf/files//output786.txt"));
        TestLogger.info(logger,"Reading data from file"+reader);

        while((macaddserverip=reader.readLine()) !=null){
            TestLogger.info(logger,"Mac Address and ServerIp value"+macaddserverip);
        }

        TestLogger.info(logger,"Value read from the output of script::"+macaddserverip);

    }
    catch(Exception e){
        e.printStackTrace();
    }

    TestLogger.info(logger,"*************   Test passed for getMacAndServerIp *****************");
    return macaddserverip;

}

脚本文件(gettingMacAndIPadd.sh) - 获取 ipaddress 和 hardwarewaddress 并将其存储在文件 output786.txt 中

ipaddress=`ifconfig | grep -A1 eth0 | grep "inet addr:" | awk '{print $2}' | cut -d":" -f2`
hwadd=`ifconfig | grep eth0 | awk '{print $5}'`
echo $ipaddress $hwadd > output786.txt

我的场景就像上面需要执行的脚本,这些值应该使用 JSCH 存储在文件中,并使用 FileReader 访问这些值。

我面临的问题就像我运行上述程序时没有创建 output786.txt 文件,并且没有在 /opt/conf/files/ 位置创建。

请帮我解决这个问题。任何人都可以建议我怎么做这种情况。

【问题讨论】:

    标签: java jsch


    【解决方案1】:

    脚本将输出存储到服务器上的文件。您无法使用FileReader 从远程服务器读取文件。

    你应该:

    【讨论】:

      猜你喜欢
      • 2011-10-01
      • 2018-04-09
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      相关资源
      最近更新 更多