我创建了一个bash脚本,它首先激活python虚拟环境,然后运行python文件。当我手动执行bash脚本时,python文件按预期运行。Bash脚本代码:
你知道吗示例.sh你知道吗
#!/usr/bin/env bash
source ./project/bin/activate
python3 /home/abc/project/server/sample.py
但是,当我尝试使用cron运行这个bash脚本时,python文件不会执行。 克朗:
16 12 * * * /home/abc/sample.sh > /home/abc/bulkcat.log 2>&1
当这个cron在指定的时间触发时,bash脚本中的python文件不会运行,日志文件为空。你知道吗
我的代码怎么了?你知道吗
它很可能是您在source命令中使用的相对路径。Cron将从不同的目录运行脚本,所以
可能不是有效路径。 试试看
。。。根据
python3 ...
行中的完整路径猜测路径。你知道吗Cron写日志,您可以找到它试图执行任务时发生的错误this question的答案提到了查找这些日志的常用位置。你知道吗
最常见的问题是:
sh
而不是bash
忽略脚本中的shebang—您可以尝试将cron作业配置为6 12 * * * /bin/bash /home/abc/sample.sh > /home/abc/bulkcat.log 2>&1
chmod 700 /home/abc/sample.sh
或chmod 755 /home/abc/sample.sh
来解决-只有在您希望允许其他用户读取和执行您的脚本时,才应使用后者cd /desired/work/directory
相关问题 更多 >
编程相关推荐