2011-10-11 70 views
1

我的任务: 需要在服务器A的特定目录中查找任何新的/更新的文件。一旦文件新/修改后的文件出现在这个directoty上,我需要将该文件ftp到服务器B.Autosys文件观察器

我可以使用Autosys和shell脚本来做到这一点吗?还是将Java程序更适合于此任务?

如果我使用Autosys,我可以设置文件观察器作业。成功后,我可以触发另一项工作。但这份工作如何知道文件名?文件监视器是否足够聪明,可以将文件名作为参数传递给另一个作业?

请帮助....

+2

这是历史和纯粹的autosys/stonebranch/Shell问题。不要将Java带入混合并且复杂化。 –

回答

4

文件守望者的工作是检查文件是否存在,并检查它的大小。您必须事先知道文件的名称。在你的情况下,如果你可以接收任何数量的你不知道名字的新文件,那么文件监视器工作就不会起作用。

一个可能的解决方案可能是:

  1. 写一个shell脚本,将
    • 获取你正在看的目录ls -l并将其保存到一个文件
    • 这个文件,生成的文件进行比较从脚本的最后一次运行
    • 找出已更改的新文件和文件,并将它们ftp到目的地
  2. 在autosys中安排脚本定期运行,比如每10分钟运行一次。
0
  1. 写shell脚本 - 一)。 cd到该目录 b)。使用find命令查找所有文件,可以在find中选择文件扩展名 ,例如。 * .txt或* .csv。如果您想要检查不超过特定时间段的文件,您也可以选择时间字段。 或 在你的情况下,你可以维护文件的版本控制,一旦文件出现,并通过find命令找到,你可以重命名文件。这样可以确保你有最新的文件被ftp处理。 你可以通过创建一个逻辑来存档或清除旧文件,多少天后你不想拥有它们。 c)。将find的输出发送到一个文件,测试该文件,如果它不是empty.ftp那个文件 到服务器B.
  2. 将这个脚本安排在每几分钟运行一次的作业中,具体取决于文件的 频率到达。
  3. 在成功的情况下,检查前一次作业是否在成功。