[英]Unable to execute Shell Script in groovy
我试图通过使用以下代码来执行Shell脚本,但这虽然在我的远程Linux服务器上提供了Shell Script位置,但仍试图在本地系统中运行Shell Script。 我不知道为什么它会那样工作。 任何人都可以检查问题出在哪里。
import java.io.InputStream;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
import com.jcraft.jsch.*
import java.io.*
import java.lang.*
JSch jsch = new JSch();
Session session = jsch.getSession("admin","192.168.2.32", 22);
session.setPassword("admin123");
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect()
Channel channel = session.openChannel("exec");
channel.connect();
def command = "bash /home/Soapui_Automation/test.sh"
def process = command.execute()
def outputStream = new StringBuffer()
def errorStream = new StringBuffer()
process.consumeProcessOutput(outputStream ,errorStream)
process.waitFor()
log.info("return code: ${process.exitValue()}")
log.error("standard error: ${process.err.text}")
log.info("standard out: ${process.in.text}" + outputStream.toString())
channel.disconnect();
session.disconnect();
响应:
1月28日星期四15:00:18 IST 2016:INFO:返回码:1
1月28日星期四15:00:18 IST 2016:错误:标准错误:
1月28日星期四15:00:18 IST 2016:INFO:标准输出:
谢谢大熊猫
您正在设置频道,然后运行本地命令...
我相信您需要这样做:
import com.jcraft.jsch.*
Session session = new JSch().getSession("admin","192.168.2.32", 22)
session.password = "admin123"
Properties config = [StrictHostKeyChecking:"no"]
session.config = config
session.connect()
Channel channel = session.openChannel("exec")
channel.inputStream.withReader { input ->
channel.command = "bash /home/Soapui_Automation/test.sh"
channel.connect()
println input.text
}
channel.disconnect()
session.disconnect()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.