2011-10-11 150 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. 在成功的情況下,檢查前一次作業是否在成功。