我有一个 shell 脚本 cron,它从同一目录调用一个 python 脚本,但是当这个 cron 执行时,我的 python 脚本没有得到预期的输出,而当我手动执行它时,我的 python 脚本的输出是符合预期的。
我在 shell 脚本中提供了 python 脚本路径,如 /usr/bin/python room_wise.py,并且也将所有 shell 参数都提供了,但是我的 python 脚本仍然没有被 shell 脚本 cron 调用。
有人可以帮我吗?
在cron作业中最大的问题是绝对路径和相对路径。你需要首先按照示例拆分相对路径。
#!/usr/bin/env bash
dirName=`dirname $0`
baseName=`basename $0`
arg1=$1
arg2=$2
cd ${dirName} && python ./room_wise.py arg1 arg2
然后使用 crontab -e 命令为您的用户 cron 作业添加项目,并添加以下内容:
PATH=/usr/bin:/bin:/sbin
30 00 * * * /my/directory/containing/room_wise_py.sh arg1 arg2 > /my/directory/containing/output.log 2>&1
2>&1
这一行是什么作用? - 3pitt
/usr/bin/python /path/to/room_wise.py
吗? - Nephowhich python
的输出是/usr/bin/python
,是否符合您的预期? - Nepho