首页 文章

crontab没有执行工作的shell脚本

提问于
浏览
0

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


#!/ bin / bash cd / abc / def / user1 / test export 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行:/../ scripts / nimbus / setup:没有这样的文件或目录main / vdnet:第14行:/ ../main/vdNet.pl:没有这样的文件或目录


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

3 回答

  • 0

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

    谢谢

  • 0

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

  • 1

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

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

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

相关问题