我正在编写一个java程序来帮助自动执行多项任务。在其中一个任务中,我需要将bash脚本推送到远程linux系统(java程序将在Windows机器上运行),然后运行脚本。有没有人知道怎么会这样做?
我看过Jsch,但是文档非常糟糕,我在实现我想做的事情时遇到了非常困难的时间。还有其他想法或具体用例吗?
编辑:我只是想用java来运行可能会这样做的批处理。令人困惑的是,但可能是可能的。现在调查一下。答案 0 :(得分:0)
我确实创建了一个Javadoc for JSch,这可以帮助你做到这一点。对于复制,您应该使用ChannelSftp,然后使用ChannelExec来执行脚本。
或者,如果你真的不需要脚本在服务器上,根据脚本语言,你可能能够提供整个脚本作为ChannelExec的“命令”(它的命令在用户的执行中执行)默认shell,并且没有固有的大小限制,我认为。)
如果您使用的是Perl或类似的解释器,您可以将脚本作为标准输入(即通道的输入流)传递给解释器命令,该命令应该允许“实时”执行它。