好的,首先讓我描述一下我的工作情況,以便清楚為什麼這是一個與系統管理相關的問題。我在一家較大的 IT 解決方案公司工作,該公司正在為一家大型電信公司營運大規模電子郵件服務(500 萬用戶)。該入口網站的主要問題之一是用戶受到殭屍網路的危害,因此他們可以用來每天發送大約 100 000 封垃圾郵件。該入口網站的投訴電子郵件地址以每分鐘 1 份、每天 1000-2000 份的速度接收 ARF 報告。任何這些報告都必須手動查看、分析、處理和存檔。由於沒有為該任務分配人力,因此報告基本上被忽略,導致垃圾郵件增加到門戶電子郵件伺服器全部按時列入黑名單的程度。我想要一個框架來自動執行此操作的原因是識別要自動處理的合法報告,而某些報告仍然需要由人工分析,如果任務足夠簡單,可以將其委託給離岸人員描述並執行。我應該強調的是,我不需要幫助來實現這些步驟,其中大多數是 1 行 shell 腳本加上一些存取外部工具的腳本,我正在尋找一個工具來將不同的步驟串在一起。
我正在考慮類似 Gearman 會見 procmail 會見 Jenkins 會見 RequestTracker 會見 Ansible(如果你願意的話,會見 Actor 模型),但我認為這樣的工具不可用。必須有一些工具來自動化至少其中的某些部分,因為投訴處理在任何中型到大型電子郵件入口網站上都必須是一個問題,其中不止一個人運行電子郵件系統。
(我希望這個解釋足以激發問題的相關性,如果不是,我真的不知道是什麼。或者這個問題在這個 SO 門戶中可能是錯誤的,但如果是這樣,哪一個適用?)
我想自動化一些以某種方式處理文件的任務,做一些決定,調用一些腳本,並且在某些情況下有一些需要人工幹預的任務。
我的示例用例如下(當我手工完成整個事情時)
- 收到垃圾郵件投訴,我在編輯器中打開該投訴以便能夠搜索
- 確定電子郵件是否符合某些標準(例如,它確實是由我們系統中的使用者發送的,時間不超過 5 天等)
- 提取發送郵件的用戶的用戶名
- 如果用戶已停用,則搜尋客戶資料庫
- 如果用戶仍處於活動狀態,則停用該用戶
- 在郵件佇列中搜尋同一用戶的其他違規電子郵件
- 將郵件移至保留區以便稍後分析
- 向客戶服務人員發送電子郵件,告知使用者已停用(可能每天收集一次停用使用者清單)
大多數這些步驟可以使用perl 腳本輕鬆自動化,但我不知道如何自動化連續步驟,特別是如果有條件和先決條件,並且如果有一些待辦事項已經待處理,則可以將一些任務收集在一起並運行(例如,只有在找到 10 個使用者或任務在過去一小時左右未執行時才搜尋佇列)。
某些決策可能需要人工幹預(例如,查看無法自動識別的郵件)或調整決策過程,以便能夠使用更改的腳本再次執行某些步驟。
我認為可以有某種作業調度程序,但我想知道如何定義必要的步驟、條件和先決條件。
(請注意,我並不是在尋找可以完成所描述任務的工具,其中大多數都可以輕鬆地以腳本的形式實現,而是在尋找一個用於組織給定任務資料必須依次完成的任務序列的工具)
我更喜歡在 Linux 上運行的 FOSS 解決方案。
答案1
這個問題很難給出明確的答案,因為有一些移動部件和一些可能需要人工幹預的地方。我建議從頂部開始使用您熟悉或技術上首選的腳本語言(例如,如果您是 Windows 商店,請使用 PowerShell,如果您只是做其他事情,請使用其他語言)。將不需要手動檢視的邏輯部分分組並編寫腳本。產生報告或在某個地方填充資料庫,然後慢慢完善過程。我不知道有哪個實用程式可以在針對您的特定環境精心編寫的腳本之外使用。