【发布时间】:2017-04-09 23:05:59
【问题描述】:
*/10 * * * * /bin/sh /dataScience/dat/JOB/forker.sh
上面是不执行的 cron 作业。我已经分别检查了 cron 作业和运行正常的 shell 脚本的功能。甚至下面的命令也能正常工作。
/bin/sh /dataScience/dat/JOB/forker.sh
我还检查了forker.sh 的权限,显示
-rwxr-xr-x 1 mango wheel 442 Nov 20 12:53 forker.sh
我是否遗漏了一些限制 cron 作业触发脚本的内容?
【问题讨论】:
-
你怎么知道cron作业没有执行?脚本中的子命令没有运行吗?通过
cron运行时检查脚本内PATH变量的值。还要确保您要使用sh而不是bash运行它。在您使用sh运行的脚本中不应有任何bash特定代码(AKA bashism)...此外,鉴于/dataScience是非标准路径,它是否需要任何NFS/磁盘安装? -
forker.sh 将内容输出到文件中。但是,如果您认为命令/逻辑失败。命令的第一行将当前日期插入到我也看不到的日志文件中。为了确定我想使用
sh,我使用了/bin/sh并调用了脚本文件。 -
如何识别 bash 特定代码?
/dataScience是在主磁盘上创建的文件夹,不需要任何特定的挂载。 -
在 bash 中添加了一些(阅读:许多)语法,这些语法不是传统 bourne shell (sh) 的一部分。您可以通过将脚本粘贴到shellcheck.net 以及在开始时添加
#!/bin/sh行来检查...或者,有syntastic 项目的编辑器插件,可以与在线工具一样工作。