我在一家电信公司工作。当我开始的时候,已经有一个系统(HP-UX)了。但现在有一个新的系统(RedHat),我负责该系统。
我们使用 crontab 进行控制。旧系统的crontab看起来不太好。太乱了。我可以说这是一片混乱。
我们正处于新系统的开始阶段,我想更有效地使用 crontab。我想让它更有条理、更美观。
你有什么建议吗?你如何使用你的 crontab?
我想举一个我们使用的例子。
15, 45 * * * * ksh(bahs or sh also) /path to script/script.sh >>(or>) /path to log file/logfile_`date`_(sometimes hostname).log
我不太专业,但我想比团队中的老成员更专业。如果我明天离开这里,我想在这里留下一个易于学习和使用的系统。
不仅对于 crontab,你的每一个建议对我来说都很有价值。
基本上我们使用 Oracle 数据库和 shell 脚本来控制、监视和自动化某些东西。
我进行了研究,但找不到任何对我有用的东西。我希望我没有问错问题。
太感谢了。
答案1
您可以做出无数的改进;我建议对“cron 最佳实践”进行一些研究,例如:
- 将任务放在自己的shell脚本文件中(使用
/etc/crontab.d/
而不是/etc/crontab
和朋友)- 使用版本控制
- 使用文件锁定来防止并发调用
- 包括适当的超时
- 对于可以与其他系统同时运行的任务,睡眠随机延迟以减轻惊群
- 应用最小权限原则 - 仅在需要时使用 root
- 正确设置邮件处理等,以便来自 cron 的邮件能够传递到正确的位置
- 不要依靠电子邮件来了解事情何时出现问题 - 使用集中式日志记录
- 请注意,cron 运行的环境与您的交互式 shell 不同
- 创建和使用测试
- 不要丢弃错误或有用输出
- 将输出发送到有用的地方,例如集中式日志记录