1、问题描述:
linux/unix下执行sh get_requirement.sh调用python脚本成功,脚本如下:
#!/bin/sh # 记录一下开始时间 echo `date` ' begin.' >> /Users/johnny/run_shell.log & # 进入helloworld.py程序所在目录 cd /Users/johnny/PycharmProjects/requirementProject # 执行python脚本 python3 getRequirement.py >> /Users/johnny/run_shell.log
但是使用定时任务调用脚本时,未执行成功,定时任务设置如下:
johnny@zymdembp ~ % crontab -l # 每天8-19点的第9、19、29、39、49、59分执行 9,19,29,39,49,59 9-18 * * * sh /Users/johnny/get_requirement.sh
2、问题分析:
正常可以执行的脚本,但是使用定时任务调起时并没有执行,说明定时任务调起脚本并没有加载执行环境。
经查询资料得知:crontab是系统服务,调用和执行python脚本时需要使用全路径,否则会执行失败。
3、问题解决:
把脚本执行的路径修改为全路径,执行成功,脚本如下:
#!/bin/sh # 记录一下开始时间 echo `date` ' begin.' >> /Users/johnny/run_shell.log & # 进入helloworld.py程序所在目录 cd /Users/johnny/PycharmProjects/requirementProject # 执行python脚本 /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /Users/johnny/PycharmProjects/requirementProject/getRequirement.py >> /Users/johnny/run_shell.log



