如何连续运行一些我通常手动执行的任务

如何连续运行一些我通常手动执行的任务

好的,首先让我描述一下我的工作情况,这样就能清楚为什么这是一个与系统管理有关的问题。我在一家大型 IT 解决方案公司工作,该公司为一家大型电信公司运营大型电子邮件服务(500 万用户)。该门户网站的主要问题之一是用户受到僵尸网络的攻击,因此他们可能被用来发送垃圾邮件,每天大约有 10 万封。该门户网站的投诉电子邮件地址收到 ARF 报告的速度可能是每分钟 1 封,每天可能达到 1000-2000 封。任何这些报告都必须手动查看、分析、处理和归档。由于没有人负责这项任务,这些报告基本上被忽略了,导致垃圾邮件增加到门户网站电子邮件服务器全部被列入黑名单的程度。我希望有一个框架来自动化这一过程,因为这样可以识别需要自动处理的合法报告,而有些报告仍需要人工分析,如果任务足够容易描述和执行,可以委托给海外人员。我应该强调,我不需要帮助来实施这些步骤,其中大部分是一行 shell 脚本,外加一些访问外部工具的脚本,我正在寻找一个工具来将不同的步骤串联起来。

我考虑过 Gearman 与 procmail 与 Jenkins 与 RequestTracker 与 Ansible 的结合(如果你愿意的话,也可以是与 Actor 模型的结合),但我认为这样的工具是不存在的。必须有一些工具来自动化其中的至少一部分,因为投诉处理在任何中型到大型电子邮件门户上都是一个问题,因为在这些门户中,不止一个人在运行电子邮件系统。

(我希望这个解释足以激发问题的相关性,如果没有,我真的不知道是什么。或者也许这个问题在这个 SO 门户中放错了,但如果是这样,哪一个是适用的?)

我想要自动执行一些以某种方式处理文件、做出一些决策、调用一些脚本的任务,并且在某些情况下执行一些需要人工干预的任务。

我的示例用例如下(当我手动完成整个操作时)

  • 收到一封垃圾邮件投诉,我在编辑器中打开它以便进行搜索
  • 确定电子邮件是否符合某些标准(例如,它确实是由我们系统中的用户发送的,发送时间不超过 5 天等)
  • 提取发送邮件的用户的用户名
  • 如果用户已被禁用,则搜索客户数据库
  • 如果用户仍然活跃则禁用该用户
  • 搜索邮件队列以查找同一用户发送的其他违规电子邮件
  • 将邮件移至暂存区以便稍后分析
  • 向客服人员发送一封电子邮件,告知用户已被禁用(可能每天收集一次禁用用户列表)

大多数这些步骤可以通过 perl 脚本轻松地自动执行,但我不知道如何自动执行连续的步骤,特别是如果有条件和先决条件,并且如果已经有几个待办事项挂起,则可以将一些任务收集在一起并运行(例如,仅当找到 10 个用户或在过去一小时左右未运行任务时才搜索队列)。

一些决策可能需要人工干预(例如查看无法自动识别的邮件)或调整决策过程,以便能够使用更改的脚本再次运行某些步骤会有所帮助。

我认为可以有某种作业调度程序,但我想知道如何定义必要的步骤、条件和先决条件。

(请注意,我并不是在寻找可以执行所述任务的工具,其中大多数都可以很容易地作为脚本实现,而是一个用于组织给定任务数据之后必须完成的任务序列的工具)

我更喜欢在 Linux 上运行的 FOSS 解决方案。

答案1

这个问题很难明确回答,因为有几个活动部件和一些可能需要人工干预的地方。我建议从头开始,使用你熟悉或技术上首选的脚本语言(例如,如果你是 Windows 商店,那么使用 PowerShell,如果你是其他商店,那么使用其他任何语言)。将不需要人工查看的逻辑部分分组并编写脚本。生成报告或填充某个数据库,然后慢慢完善流程。除了为你的特定环境精心编写的脚本之外,我不知道还有哪个实用程序可以使用。

相关内容