监视目录和使用变量替换

您可以使用 fteCreateMonitor 命令来监视目录。 替换变量的值可以在任务 XML 定义中被替换并用于定义传输行为。

关于本任务

在该示例中,源代理称为 AGENT_HOP。 AGENT_HOP 监视的目录称为 /test/monitored。 代理每 5 分钟轮询一次目录。

在将 .zip 文件写入目录后,将该文件写入目录的应用程序会将触发器文件写入同一目录。 触发器文件的名称与 .zip 文件名称相同,但文件扩展名不同。 例如,在将文件 file1.zip 写入目录后,会将文件 file1.go 写入该目录。 资源监视器监视与 *.go 匹配的文件的目录,然后使用变量替换来请求传输相关联的 .zip 文件。

过程

  1. 创建任务 XML,以定义监视器被触发时应执行的任务。
    <?xml version="1.0" encoding="UTF-8" ?>
    <request version="4.00" 
             xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
             xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
       <managedTransfer>
         <originator>
           <hostName>blue.example.com</hostName>
           <userID>USER1</userID>
         </originator>
         <sourceAgent agent="AGENT_HOP" QMgr="QM_HOP" />
         <destinationAgent agent="AGENT_SKIP" QMgr="QM_SKIP" />
         <transferSet>
           <item mode="binary" checksumMethod="none">
             <source>
               <file>/test/monitored/${fileName{token=1}{separator=.}}.zip</file>
             </source>
             <destination type="file" exist="overwrite">
               <file>/out/${fileName{token=1}{separator=.}}.zip</file>
             </destination>
           </item>
         </transferSet>
       </managedTransfer>
    </request>

    变量(将替换为与触发器文件相关联的值)以粗体突出显示。 该任务 XML 保存到文件 /home/USER1/task.xml

  2. 创建资源监视器以监视目录 /test/monitored
    提交以下命令:
    fteCreateMonitor -ma AGENT_HOP -mm QM_HOP -md /test/monitored 
                     -mn myMonitor -mt /home/USER1/task.xml 
                     -tr match,*.go -pi 5 -pu minutes
  3. 用户或程序将文件 jump.zip 写入目录 /test/monitored,然后将文件 jump.go 写入目录。
  4. 监视器由文件 jump.go的存在触发。 代理将在任务 XML 中替换有关触发器文件的信息。
    这导致任务 XML 转换为:
    <?xml version="1.0" encoding="UTF-8" ?>
    <request version="4.00" 
             xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
             xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
       <managedTransfer>
         <originator>
           <hostName>blue.example.com</hostName>
           <userID>USER1</userID>
         </originator>
         <sourceAgent agent="AGENT_HOP" QMgr="QM_HOP" />
         <destinationAgent agent="AGENT_SKIP" QMgr="QM_SKIP" />
         <transferSet>
           <item mode="binary" checksumMethod="none">
             <source>
               <file>/test/monitored/jump.zip</file>
             </source>
             <destination type="file" exist="overwrite">
               <file>/out/jump.zip</file>
             </destination>
           </item>
         </transferSet>
       </managedTransfer>
    </request>

结果

已执行任务 XML 所定义的传输。 jump.zip 文件由 AGENT_HOP 从 /test/monitored 目录中读取,并传输至位于运行 AGENT_SKIP 的系统上的名为 /out/jump.zip 的文件。