2

我有一个 bash 脚本,它从 LSF 排队系统命令“bqueues”的输出监视集群中的作业。脚本运行良好。现在我想创建一个调用这个脚本的 crontab 条目。问题是与 bqueues 相关的所有内容都不会产生输出,这可能是什么原因?

4

1 回答 1

3
  1. Cron 作业不继承用户的登录环境。特别是在 .login 或 .profile 等中设置的环境变量将根本不可用。cron 作业失败的最常见原因是 PATH 设置不是脚本编写者所假设的。
  2. Cron 作业没有与之关联的标准输入。虽然 cron 不会执行用户的 .login/.profile,但它会正常启动 shell - 从而导致 shell 的启动文件(.cshrc、.bashrc 等)被执行。此外,cronjob 中使用的某些命令可能依赖于存在的终端。例如,如果您尝试在批处理模式下启动“vi”,请不要。而是将其替换为 ed 或 sed。
  3. Cron 作业输出将通过 Unix 邮件发送给 crontab 所有者
  4. 对 crontab 本身的权限。如果文件的权限设置不正确,许多 cron 实现甚至不会查看 crontab。通常权限应该非常严格 - 所有者只能读/写,而组或其他人没有权限。
  5. env通过从 shell 和 crontab发出来比较环境。
  6. ...

有关更多调试提示,请参阅如何调试 cron 未执行给定脚本的问题 - 或其他?

于 2011-06-16T12:03:59.177 回答