crontab没有执行工作的shell脚本

时间:2014-11-05 05:37:08

标签: linux shell cron crontab

我有一个以下格式的脚本:


  

#!/斌/庆典

     

cd / abc / def / user1 / test

     

导出NIMBUS_ENV_FILE = / abc / def / user1 / test / nimbus_env

     

main / vdnet -c yaml / config.yaml -t ABC。。*


我的脚本在从shell运行时执行完美。我想每天执行这个脚本,所以我通过编辑crontab -e为我设置了一个cron作业:


  

PATH = / USR / bin中:/ usr / sbin目录:

     

00 12 * * * /home/test.sh> /home/testCronLog.log 2>& 1


但是,运行了cron作业,但它没有按预期运行脚本并出现以下错误:

  

main / vdnet:第2行:readlink:未找到命令

     

dirname:缺少操作数

     

尝试使用dirname --help'了解更多信息。

     

main / vdnet:第3行:/../main/environment:没有这样的文件或目录

     

main / vdnet:第8行:/../ script = nimbus / setup:没有这样的文件或者   目录

     

main / vdnet:第14行:/../ main/vdNet.pl:没有这样的文件或目录


当我手动执行脚本并且无法弄清楚什么是错误时,我没有收到这些错误。脚本的所有者与crontab用户相同。 请帮助!!!

3 个答案:

答案 0 :(得分:1)

问题现已解决。 在运行命令main / vdnet之前,我添加了脚本的路径: export PATH = ...

由于

答案 1 :(得分:0)

当你使用某些命令或某些东西或你的脚本时,总是更好地给出完整路径
所以在脚本中提供main/vdnet的完整路径

答案 2 :(得分:0)

尝试将test.sh中调用vdnet行的行更改为:

main/vdnet -c /abc/def/user1/testyaml/config.yaml -t ABC...*

我认为你的问题是虽然test.sh完全从crontab运行,但main / vdnet却没有,这是因为你提供它作为-c选项参数的引用需要完整路径。