Shell 脚本无法通过 cron 作业运行

Shell 脚本无法通过 cron 作业运行

我正在使用一个在 Stand alone 中工作的脚本,并且不通过 cron job 工作。

qexma1@test:bin> head -n 10 test.sh
#!/bin/bash
declare -r PATH='/sbin:/bin:/usr/sbin:/usr/bin'
source $AEM_CONFIG/aem-wrap.conf

计划任务:

qexma1@test:bin> crontab -l | grep aem-test.sh
01 15 * * * bin/test.sh -b ; touch bin/crontest.txt;

旗帜 :

qexma1@test:bin> ll bin/ | grep cron
-rw-r--r--  1 qexma1 abc   0 Nov 11 15:01 crontest.txt

标记文件已创建 crontest.txt 但脚本未执行。权限 0755

答案1

由于 stderr 的输出如下,这意味着变量$AEM_CONFIG未设置。这就是工作失败的原因。

/global/appaem/aem/bin/aem-test.sh: line 5: /aem-wrap.conf: No such file or directory

要解决此问题,请修改脚本以获取设置$AEM_CONFIG.

正如您指出的,该变量是在 .bashrc 中定义的,请参阅cron 忽略“.bashrc”和“.bash_profile”中定义的变量。您需要source ~/.bashrc在脚本中添加一行,例如。例子:

#!/bin/bash
declare -r PATH='/sbin:/bin:/usr/sbin:/usr/bin'
source ~/.bashrc
source $AEM_CONFIG/aem-wrap.conf

相关内容