使用sys参数运行cron作业

时间:2014-07-21 20:56:09

标签: python cron crontab

我正在尝试运行一个带有一个参数(CSV文件)的python文件。它在我在终端中运行脚本时有效,但是当我在cron中运行它时会出错。

这是我在终端中运行的行:

python nb2.py my_csv_file.csv

这是我的代码,我试图在cron中运行:

42 13 * * * /usr/local/bin/python2.7 ~/nb/Development/code/nb2.py ~/nb/Development/code/my_csv_file.csv &> /tmp/June_QB_cat.log

错误说它无法找到已存在于code文件夹中的sqlite表文件。

2 个答案:

答案 0 :(得分:2)

请注意,当您在终端中运行命令时,您已经在〜/ nb / Development / code目录中,因此您当前的工作目录就是那个;当你在它中运行cron时,它不是。我建议你做(在你的cron工作中)cd ~/nb/Development/code && python nb2.py my_csv_file.csv &> /tmp/logfile.tx或做os.chdir("~/nb/Development/code")作为代码的第一步。 (另外,我建议使用/ home / username代替〜以防万一你在某些时候没有将cronjob作为你的用户名运行,但鉴于你得到的错误,这听起来不是问题)

答案 1 :(得分:1)

您可以使用

获取相对于当前脚本的文件路径
import os.path
relative_path = os.path.join( os.path.dirname(__file__), "sqlitetable" )