bash - crontab 中 LSF 排队输出问题

标签 bash cron queue lsf

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

最佳答案

  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. 通过从 shell 和 crontab 发出 env 来比较环境。
  6. ...

有关更多调试技巧,请参阅How to debug an issue of cron's not executing a given script -- or other?

关于bash - crontab 中 LSF 排队输出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6371337/

相关文章:

具有队列 : asyncio. 的 Python 3.8 websocket 回显客户端 Queue get() 不会即时添加队列项

linux - 分隔符范围线函数

json - 如何使用 jq 将多个字段连接到同一行

Golang Cronjob vs time.Ticker 用例

Linux at命令脚本不断重复

C:超出队列和内存限制

C++ 线程安全队列关闭

linux - 将命令行参数传递给 .sh (shell) 文件

regex - 具有正则表达式循环值的 shell 脚本输入字符串

linux - 为什么不运行 cron?