我使用JCraft库编写了一个代码,使用exec
通道连接到远程,并在远程创建一个文件。该文件的内容是我echo
ing然后使用> filename.ini
放入文件。
echo
工作正常,但> filename.ini
没有在远程创建任何文件。
我该如何解决这个问题?
这是代码:
Session session=jsch.getSession(user,host, 22);
session.setPassword(pswd);
session.setConfig("StrictHostKeyChecking", "no");
session.setConfig("PreferredAuthentications","publickey,keyboard-interactive,password");
session.connect();
System.out.println("Connected");
Channel channel=session.openChannel("exec");
channel.setInputStream(null);
String command = "echo '\"Hi\"|\"Hello\"' | sed -e 's/|/\\n/g' > /home/myuser/tmp.ini; cat /home/myuser/tmp.ini";
((ChannelExec) channel).setCommand("sudo -iu myuser -p '' " + command);
InputStream in = channel.getInputStream();
OutputStream out = channel.getOutputStream();
((ChannelExec) channel).setPty(true);
((ChannelExec) channel).setErrStream(System.err);
channel.connect();
我错过了什么吗?