我们使用cron来pipe理多个位置的备份和其他工作。 使用厨师填充cron.daily,cron.hourly等文件到目前为止,我们工作得很好,但有一些问题:
最好,我想要一个基于Web的前端,我可以用它来查看这些信息,作为cron的扩展或完整的replace。
我可以用一些脚本来自己解决上述问题,但是我相信这是别人已经解决的问题。
请注意,我承认,在完成备份后,这是一个完全独立的问题。
您可以使用Resque (通过内置的Web界面)来pipe理作业。 看看Resque Railscast看看它在行动。
然后使用ruby gem resque-scheduler在计划的时间将作业添加到队列中。
这里有一篇很好的博客文章: “使用Resque为您的Rails应用程序执行Cron任务”
也许这不是一个完美的适合你以后,但我最近的做法是两个Rubygem和一个Web服务的组合。
首先, 无论何时 ,它给你一个干净的ruby界面调度cron作业(所以,不是cron替代,只是一个顶层)。
接下来是备份 gem,它提供了一整套完整pipe理备份的工具(包括云存储位置)。 当任务失败和/或成功时,备份还会通过电子邮件发送给您(由您来configuration)。
SendGrid的最后一部分就是SendGrid – 尽pipe他们推出了付费计划,但他们确实有一个免费的计划,允许每天发送200封电子邮件。 我当然不会为了这个脚本而对他们的服务器征税,所以这很适合我。 他们可能需要几个小时才能确认一个帐户,但一旦build立起来,我就没有问题了。
如果您愿意,可以分享一些示例脚本。
这听起来像你想要的不是一个cronreplace,而是一个备份系统( 如Bacula )。
请参阅我的答案以下的个人观点。
我不想为了接收cron输出而在系统上pipe理邮件服务器
你不必与cron 。 正如其他人指出的,你可以运行SSMTP,或者一个send-only sendmail实例(只是一个队列运行器)。
或者,您可以将您的cron输出redirect到一个文件或系统日志,或将其导出到任何其他您想要处理的程序。
如果没有任何错误,我希望能够把输出放在我的cron作业中,而不会收到有关它们的电子邮件
根据以上所述,您可以将您的cron输出传输到处理程序,logging器等。 – 您不必接收cron邮件,这只是默认configuration的方式。
我不想检查/ var / log / messages来查看作业是否失败而没有输出
这取决于你的备份软件是如何工作的(以及如何生成日志条目或可parsing的输出,以便可以通过脚本提供,并根据需要发送消息。
一个“真正的”备份系统将通过控制台/监控工具为您提供这些信息,如果在工作中需要注意,甚至可以通过电子邮件发送给您。
我不想login到系统,发现备份作业仍在运行
再一次,这取决于你的备份软件。 Bacula和其他专用的备份程序使您可以从中央控制台监视每台客户端计算机上代理的状态,因此您无需login各个客户端即可查看其状态。
Bacula有一个基于Web的界面,但我不能担保:我使用命令行控制台程序。
这些对你的“其他工作”没有任何帮助(正如你所指出的,他们的输出可以用我的笔记从前两个点加上一些脚本来处理),但是使用一个标准的,众所周知的软件像cron一样会使维护更容易。
您可以尝试一个结构化的作业调度程序来pipe理系统中的任务。 像开放源代码的Job Scheduler这样的工作会很好。 好处是你有一个中央控制台来pipe理事情,有一个方法来处理依赖性检查和正确的方式来重新运行或错过任务窗口的情况下正确地开始工作。