我需要维护和更新一个复杂的crontab。虽然对基本概念有一定了解,但是对它和bash脚本的使用经验不多,因此我想做得更好。短期要求:有没有关于“重构”混乱的crontab和一堆bash脚本的指南?
长期要求:我遇到了许多问题,但是有这么多人使用cron文件等,我感觉可能会错过某些重要信息,最佳实践和工具-还是这仅仅是这种编程风格上的差异?(我的偏见:如果可以使用工具更快,更一致地完成任务,为什么要手动操作呢?)
以下是一些问题示例:
由于外部事件,crontab 没有运行了几天。与其他人一起,我们手动检查列表,试图找出哪些未运行、需要重新运行以及需要用较早日期编辑和运行的脚本等。 我找不到的内容:
- 有很多(有点无意义的)在线'cron生成器'。是否存在相反的工具?我可以输入一个长长的crontab,两个日期,然后输出应该在何时运行哪些进程或总共运行多少次? 这似乎在我的有限脚本能力范围内,所以它不应该已经存在吗? ;)
- 或者,如果我必须再次这样做,是否有一种调用bash脚本的方式,使任何date()实例都预设为较早时间,而不是更改脚本中的每个日期调用?(例如,对于所有错过的报告和账单发票)
原来一个特定的报告已经两年没有运行了。最近又被要求运行,结果在crontab 中找到了它!但是bash脚本只是指向相关文件的错误路径。 我找不到的内容:针对bash文件的某种路径检查工具?就像网站链接检查器一样。是的,我最终会手动检查所有问题,但至少可以显示出部分问题区域。
听起来有时候依赖进程之间的间隔时间过长或者过短,导致更新在第一个进程运行后发生,或者第一个进程在第二个被调用之前还没跑完。我看到了一些可能的解决方案(例如anacron按顺序运行),但您会推荐什么呢?
另外,由crontab生成了大量无实际意义的电子邮件(脚本抛出错误但“正确”运行,大多数情况下默默失败,或者只打印非必需脚本的每一步)。我将手动检查脚本,并尝试让它们提供更有用的数据,或者“安静成功”,但是,你懂的 - 有任何指导方针吗?
如果我对问题的理解或布局混淆了,那么我很抱歉,但嘿 - 您看到我的问题了!我需要从新手变成知道该怎么做才能做得对,而不会进一步破坏敏感系统。谢谢!