3
<?xml version="1.0" ?>
<project name="test" default="root">
    <target name="telnet">
        <telnet server="10.1.1.1">
            <read>login:</read>
            <write>root</write>
            <read>password:</read>
            <write>${PASSWORD}</write>
            <read>#</read>
            <write>ls</write>
            <read>#</read>
        </telnet>
    </target>
</project>

那是我在 build.xml 文件中的代码。当我运行 ant(版本 1.8,在 bash 中)时(我已经下载并复制了 commons-net-2.0 和 jakarta-oro-2.0.8 的 jars),这是我得到的输出:

Buildfile: /home/sagar/build.xml

telnet:

然后它就坐在那里。当我在服务器上执行“谁”时,我可以看到“系统”正在等待登录。但这之后没有任何进展。我可以使用普通的远程登录方式(putty、bash 等)远程登录到服务器。

我什至尝试了完整的 telnet 命令而不是读/写:

<telnet server="10.1.1.1" userid="root" password="root">

任何帮助深表感谢!

Note: JRE 1.5, Ant 1.8, commons-net version 2.0, jakarta version 2.0.8

4

2 回答 2

4

弄清楚了。对于其他有此问题的人:

Ant 1.8.0 似乎不适用于 commons-net-telnet。不知道为什么,但如果你可以降到 1.7 版,它会工作的。

6 小时的头撞和挫败后,这是一个未记录的版本问题。伟大的!>:

于 2010-04-28T19:56:08.387 回答
0

不是 Ant 专家(我在黑暗面使用 Nant),但查看 telnet 任务似乎有一个名为的属性initialCR,它在登录后发送回车 - 默认值似乎是“否”。

我的想法是用户名/密码尚未提交,即它只是在等待“伪输入键”被按下。

http://ant.apache.org/manual/Tasks/telnet.html

希望这可以帮助

于 2010-04-28T16:11:13.860 回答