0

Antを使用して次のことを行いました。マシンAからantスクリプトを実行する必要があります。スクリプトには、ホスト名、ユーザー名、pwd、ダウンロードするディレクトリ、ftpの詳細など、マシンBに関する詳細が含まれています。スクリプトがマシンAから実行されると、ftpを使用してsomefileをダウンロードする必要がありますマシンBで。

スクリプトでマシン B の詳細を指定しましたが、スクリプトを実行すると、マシン B ではなくマシン A にファイルがダウンロードされます。または誰かがコードで私を助けることができますか?

前もって感謝します。

コードは次のとおりです。

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 ダウンロード セクションの間にリンクはありません。誰でもこれについて助けることができますか?

4

2 に答える 2

4

sshexecタスクを使用してリモートコマンドを実行したり、sepを使用してマシンBとの間でファイルをコピー/プッシュしたりできます。これを概念的に行う方法はいくつかあります。

最初のアプローチ:リモートftpサイトからマシンAにファイルをダウンロードし、scpタスクを使用してマシンBにコピーします。最後に、sshexecを使用してマシンBでファイルを実行します。

2番目のアプローチ:マシンAからsshexecを介してマシンBでcurlまたはftpコマンドを直接実行することにより、ファイルをマシンBに直接ダウンロードします。次に、別のsshexecタスクを実行して、マシンBでファイルを実行します。

3番目のアプローチ:マシンB(Macの場合はbash / Linux powershell / Windowsの場合はVBScript)で動作するスクリプト(workflowscript.sh)を記述し、このスクリプトに、ftpまたはcurlを介して他のスクリプトのダウンロードを実行するロジックを配置します。なんでもいい。マシンAでscpを使用してworkflowscriipt.shをマシンBにコピーしてから、sshexecを使用して実行します。

上記のすべてのアプローチでは、何がどこで実行されるかを知っておく必要があります。マシンAはファイルをプッシュするかリモートコマンドをマシンBに送信するだけで、マシンBがすべての作業を行います。

于 2012-09-17T21:47:48.027 に答える
1

以下を使用して、リモート マシン () でコマンド/スクリプトを実行できます。

ssh <remote_user>@<remote_server> "<command_1>; <command_2>; ... <command_n>"

これらのコマンドの 1 つは、コマンド ライン FTP クライアントである「gftp」です。必要なものをダウンロードするには。

于 2012-09-17T20:43:24.177 に答える