如何从浏览器或Azure功能调用远程计算机上的Shell脚本

时间:2017-10-06 13:20:15

标签: linux shell azure azure-functions

我在远程计算机上有一个shell文件,它将执行某些必需的操作。我可以从VM外部调用此shell。

就像使用Azure功能或浏览器本身一样。

这是shell的快照。

enter image description here

1 个答案:

答案 0 :(得分:0)

根据您的需要,我建议您使用SSH连接到远程服务器并执行命令。

我不确定您使用的是哪种语言。所以,我在这里为您提供java示例代码。

您可以使用SSH组件JCraft进行远程连接和shell命令调用。

JSch jsch = new JSch();

String command = "/tmp/myscript.sh";
Session session = jsch.getSession(user, host, 22);
session.connect();

Channel channel = session.openChannel("exec");
((ChannelExec)channel).setCommand(command);

channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in = channel.getInputStream();
channel.connect();

byte[] tmp = new byte[1024];
while (true) {
  while (in.available() > 0) {
      int i = in.read(tmp, 0, 1024);
      if (i < 0) {
          break;
      }
      System.out.print(new String(tmp, 0, i));
  }
  if (channel.isClosed()) {
      if (channel.getExitStatus() == 0) {
          System.out.println("Command executed successully.");
      }
      break;
  }
}
channel.disconnect();
session.disconnect();

此外,您可以参考此帖子How do I run SSH commands on remote system using Java?

希望它对你有所帮助。如有任何疑虑,请随时让我知道。