我正在使用一个在 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