【问题标题】:Can JSch SFTP support site commands like lrecl or blksizeJSch SFTP 可以支持 lrecl 或 blksize 等站点命令吗
【发布时间】:2016-08-25 14:32:18
【问题描述】:

当尝试从非大型机环境 SFTP 到大型机 (zos) 环境时,我试图弄清楚 Jsch sftp 框架是否可以支持诸如 lreclblksizemgtmclass 等站点命令.

从我目前所遇到的情况来看,SFTP 规范似乎并不直接支持 site 命令,但我不能 100% 确定该信息是否准确。

在更多地研究 JSch 时,似乎有一个 ChannelExec 类似乎能够远程执行命令,但这是否能满足我的需求我还无法确定。

一位专门研究大型机的同行告诉我,ls /+/ 可以使用一些大型机魔法,但是自从 Java 以来,如何将其潜在地应用于 JSch 中可用的任何类都超出了他的能力范围。不是他的专业领域。

我们将不胜感激。

【问题讨论】:

    标签: java sftp jsch mainframe zos


    【解决方案1】:

    我将部分回答我自己没想到的问题。经过大量搜索,我发现了一段正是我需要的代码。

    因此,这使用了我的同行谈论的大型机魔法,使用ls 命令传递站点命令。

    我只是摘录一小段内容来说明我在这里想要完成的工作:

    String lrecl = "/+/lrecl=128"
    JSch jsch = new JSch();
    Session session = jsch.getSession(user, hostName, port);
    session.setPassword(password);
    session.connect(120000);
    ChannelSftp channel = (ChannelSftp)session.openChannel("sftp");
    channel.connect(100000);
    channel.ls(lrecl);
    

    这只是代码的一部分,但确实显示了如何传递站点命令。我还没有确认是否所有站点命令都可以通过这种方式发送。

    希望这可以帮助或节省一些时间。

    对这种方法有任何反馈或想法,请告诉我。

    【讨论】:

    • 我能够发送文件。 sshService.getChannelSftp().ls("/+/mode=text"); sshService.getChannelSftp().ls("/+/lrecl=80"); sshService.getChannelSftp().ls("/+/recfm=FB"); sshService.getChannelSftp().put("src/path","dest/path", ChannelSftp.OVERWRITE)
    • 你能告诉scala相当于添加这些命令吗?我尝试使用这些命令,但我得到 File not found, not a valid file 错误...请帮助
    猜你喜欢
    • 2015-01-11
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2011-07-17
    • 2019-01-16
    相关资源
    最近更新 更多