1

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

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

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

请帮忙....

4

2 回答 2

4

文件观察器作业用于检查文件的存在并检查文件的大小。您必须提前知道文件的名称。在您的情况下,如果您可以收到任意数量的名称您事先不知道的新文件,则文件观察程序将无法工作。

一种合理的解决方案可以是:

  1. 编写一个shell脚本,它将
    • 获取ls -l您正在观看的目录并将其保存到文件中
    • 将此文件与上次运行脚本生成的文件进行比较
    • 找出新文件和更改的文件并将它们 ftp 到目标
  2. 安排 autosys 中的脚本定期运行,比如每 10 分钟运行一次。
于 2011-10-27T14:56:54.820 回答
0
  1. 编写一个 shell 脚本 - a)。cd 到那个目录 b). 使用 find 命令查找所有文件,可以在 find 中选择文件扩展名,例如。*.txt 或 *.csv。如果您想检查不超过某个时间段的文件,您也可以选择时间字段。或者在您的情况下,您可以维护文件的版本控制,一旦文件出现并通过 find 命令找到,您可以重命名文件。这样您可以确保您拥有要 ftp 的最新文件。您可以存档或清除旧文件,方法是在您不想拥有它们的天数后创建一个逻辑。C)。将 find 的输出发送到一个文件,测试该文件,如果它不为空。将该文件发送到服务器 B。
  2. 根据文件到达的频率,将此脚本安排在每隔几分钟运行的作业中。
  3. 在成功条件下,检查之前运行的作业是否成功。
于 2013-01-02T23:04:42.913 回答