你如何logging和pipe理计划任务?

我们使用计划任务/ cron作业来执行Windows和Linux中的许多重要任务。

  • 在机器之间移动文件
  • 在处理文件之前快速备份文件
  • 将数据加载到数据库中
  • 必要时重新启动服务

你如何logging和pipe理任务,回答这样的问题:

  • 如果任务是相互关联的,他们按什么顺序运行?
  • 任何任务是否干扰机器的备份窗口?
  • 备份这些文件的工作在哪里?

我们将这些信息添加到每个服务器的wiki页面,并为任何复杂的序列添加一个单独的页面。 但有没有更好的办法?

我们尝试在单个服务器上维护大多数批处理过程。 作业全部通过Windows上的应用程序调用VisualCron运行。 工作的描述和时间安排都是自我logging的。 我们的SharePoint服务器上进一步logging了更复杂的stream程,其中包含所有其他内部IT文档。

我正在使用相同的系统:所有cron作业都logging在wiki中,并链接服务器页面之间的复杂过程。 但仍然不是最佳的。

在serverfault.com 的类似问题试图解决这个问题没有成功,但谷歌日历解决scheme是一个不错的方法,我认为值得一试。

对于Windows服务器,我们使用名为NTS File Mover的便宜应用程序来跟踪我们的预定作业。 应用程序按顺序处理所有单个任务,将结果logging在NT应用程序日志中,并在出现问题时发送电子邮件。 当我们的服务器上的计划任务出现问题时,我们总是知道去哪里看的!

通常为这些function编写文档确实是不需要的,因为如果任务是相互关联的,我会把整个过程放到一个shell脚本和cronjob脚本中。

通常,脚本的头部是足够好的; 就像是:

#/bin/sh # updates and restarts Apache using apt and init.d apt-get install apache/testing /etc/init.d/apache2 restart 

注意上面的脚本实际上并不是我会用到的,而是一个例子