繁体   English   中英

从shell脚本cron调用python脚本

[英]Calling a python script from shell script cron

我有一个Shell脚本cron,它从同一目录调用python脚本,但是执行此cron时,我没有从python脚本中获得预期的输出,而当我手动执行时,我的python脚本的输出符合预期。

我提供了/ usr / bin / python room_wise.py之类的python脚本路径

并在shell脚本中也给出了所有shell参数,但是仍然没有使用shell脚本cron调用我的python脚本。

有人能帮我一下吗?

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

您可以看到我已经添加了PATH,因为某些操作系统发行版有时可能会出现问题。 此外,该脚本与bash脚本位于同一目录中,或者,如果您修改bash脚本以将目录名包含为$ 1,则可以将目录位置作为参数传递。

您还可以看到我已将所有输出定向到一个日志文件。 这是一个非常好的主意,因为如果出现问题,有时很难调试过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM