我已经使用 Ant 执行了以下操作。 我需要从机器 A 运行 ant 脚本,该脚本包含有关机器 B 的详细信息,如主机名、用户名、密码、要下载的目录、ftp 详细信息等,当脚本从机器 A 运行时,它应该使用 ftp 下载某个文件在机器 B 中。
我已经在脚本中给出了有关机器 B 的详细信息,但是当我运行脚本时,它会在机器 A 而不是机器 B 中下载文件。我缺少什么?或者有人可以帮我编写代码吗?
提前致谢。
这是代码:
在 Maven 中,我定义了机器 B 的详细信息:
<host>MachineB</host>
<host.username>user</host.username>
<host.password>pwd</host.password>
在 build.xml 中
<target name="Todownload_file" <mkdir dir="${download_dir}" />
<ftp action="get" server="download_server_details" userid="user" password="pwd" remotedir="path">
<fileset dir="${download_dir}">
<include name="${file_name}"/>
</fileset>
</ftp>
</target>
正如我在评论中所说,机器 b 详细信息和 ftp 下载部分之间没有链接。有人可以帮忙吗?
最佳答案
您可以使用 sshexec 任务来运行远程命令,并且可以使用 sep 将文件从机器 B 复制/推送到机器 B。从概念上讲,您可以通过几种方法来执行此操作。
第一种方法: 将文件从远程 ftp 站点下载到计算机 A,然后使用 scp 任务将其复制到计算机 B。最后使用 sshexec 在机器 B 上运行该文件。
第二种方法: 通过 sshexec 从机器 A 直接在机器 B 上运行curl 或 ftp 命令,将文件直接下载到机器 B 上。然后运行另一个 sshexec 任务以在机器 B 上执行该文件。
第三种方法: 编写一个可在机器 B 上运行的脚本 (workflowscript.sh)(适用于 Mac/Linux powershell 的 bash/适用于 Windows 的 VBScript),并在此脚本中放置通过 ftp 或 curl 或其他方式执行其他脚本下载的逻辑。在机器A上使用scp将workflowscriipt.sh复制到机器B,然后使用sshexec执行它。
在所有上述方法中,您需要了解什么在哪里运行。机器 A 只是向机器 B 推送文件或发送远程命令,机器 B 完成所有工作。
关于java - 如何从一台机器针对另一台机器运行ant脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466397/